Conectando Netbeans 7.1 con Oracle 10g XE
Para un proyecto de Ingenieria en Sistemas de Informacion en Salama Baja Verapaz, Guatemala relacionado al curso de Base de datos, implementamos un software creado con java desde netbeans con el fin que se conecte a oracle de forma remota.
JDBC Thin Driver: No requiere de la instalación cliente de ORACLE. Ideal para Applets.
este usare en este ejemplo por su forma practica y sencilla de realizar
JDBC OCI : API nativa de ORACLE, para aplicaciones J2EE.
JDBC KPRB driver: (default connection) para Java Stored Procedures y Database JSP's.
Todos los drivers soportan la misma sintaxis y funcionalidad, por lo que nuestro código variará únicamente en la forma de crear la conexion.
Conectar a ORACLE con JDBC Thin Driver: El driver JDBC Thin se conecta y comunica con ORACLE a nivel de sockets. Proporciona su propia versión del protocolo Net8 (SQL*Net) sobre TCP/IP, por lo que no es necesario que exista una instalación de la parte cliente de ORACLE. Dado que este driver es código 100% Java es completamente independiente de la plataforma de ejecución, y como implementa su propia versión del protocolo es ideal para aplicaciones que se ejecutan sobre un navegador Web (applets).
EMPECEMOS
El driver por defecto para oracle no viene en la Instalación de Netbeans,
¿entonces?, hay que bajarlo de la página de drivers de oracle, el cual escogemos ojdbc14.jar
es decir las clases, (BUENO PARA REALIZAR LA DESCARGA HAY QUE LOGEARSE).
Acá les dejo un link con el driver por si lo prefieren descargar de aquí:
http://filevelocity.com/dcvtawyku630/ojdbc14.jar
Para hacer la conexión a Oracle necesitamos el puerto (el default es 1521), el host o la maquina, y el sid (en este caso es XE).
Antes de continuar necesitas leer bien estas tres interfaces.
Connection
ResultSet
Statement
Connection.- Es el objeto que hará una conexión física a la base de datos a la que desees conectarte. Mientras esta este echa tu podrás realizar consultas a la db.
Statement. Te permitirá crear un sentencia SQL usando el objeto Connection.
ResultSet.- Te permitirá guardar el resultado de una consulta usando el objeto Statement.
Bueno se los explico un poco mas detallado:
1.creamos un proyecto nuevo: (presionen sobre las imágenes para hacerlas mas grandes)
![]() |
2.en categorías elegimos java, en proyectos aplicación java y luego siguiente: |
3.escribimos el nombre de nuestro proyecto, luego presionar terminar de esta forma creamos nuestro proyecto:
4.esta seria la pantalla que tendríamos después de haber presionado terminar; en la parte sombreada con roja nos muestra el nombre de nuestro proyecto (allí se ven mas porque he creado otros proyectos para practicar) en este caso ''blog'' podemos desplegar en la pestaña + para obtener una vista completa de las categorías del proyecto. También tenemos la pestaña con el nombre Blog.java esta seria la clase java. el código fuente lo trae por defecto.
5.expandimos las opciones del proyecto en + se mostraran dos carpetas (paquetes de fuentes y Bibliotecas) presionamos click derecho sobre ''Biblioteca'' luego seleccionamos Agregar archivo JAR/carpeta
6. luego de realizar el paso anterior nos mostrara la siguiente ventana, ubicamos nuestro driver ojdbc14.jar de oracle yo lo tenia en el escritorio bueno eso no era relevante XD XD, lo seleccionan y le dan abrir.
7. como se pueden dar cuenta ya cargo el driver ojdbc14.jar; bien ya esta listo para poder ser usado.
8.expandimos la carpeta paquetes de fuentes en + luego en el paquete de la clase volvemos a presionar en + para mostrar nuestra clase .java en mi caso se llama Blog.java. bueno si ustedes ya lo tiene abierto prosigan al siguiente paso.
9.Luego seleccionamos la pestaña de la clase en mi caso Blog.java si no lo tenemos abierto lo buscamos a partir del paso anterior. Posteriormente creamos nuestro código para realizar la conexión.
Después de terminar pasamos a ejecutarlo presionamos en el boton de play lo he mostrado con color verde y nos debera mostrar la ejecucion de forma correcta mostrando lo que esta en la parte inferior de la imagen tambien con color verte. prácticamente lo que hacemos es mostrar la version de oracle que usamos entre otras características.
CÓDIGO FUENTE USADO EN EL PASO ANTERIOR
package blog;
import java.sql.*;
public class Blog {
public static void main (String args []) throws SQLException
{
DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@vodka:1521:XE", "empresa", "max");
// driver@nombredelaPC : puerto-oracle : SID, usuario, password
Statement stmt = conn.createStatement();
ResultSet rset = stmt.executeQuery("select BANNER from SYS.V_$VERSION");
while (rset.next())
System.out.println (rset.getString(1)); // Print col 1
stmt.close();
}
}
explicación breve del código fuente:
DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
con esta parte del código le decimos a java que usaremos el driver de oracle
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@vodka:1521:XE", "empresa", "max");
entonces esta parte del código jdbc:oracle:thin:@ estable la conexión con el driver de oracle a si mismo como el método de conexión. vodka es el nombre de mi pc, tambien pueden escribir localhost no necesariamente el nombre de su maquina.. el 1521 es el puerto default de oracle..XE es el proceso de oracle por default debera ser XE porque estamos usando oracle 10g XE hasta su propio nombre lo dice... luego continua con el nombre de usuario de la base de datos de oracle en mi caso es empresa y finalmente el pasword de la base de datos de oracle en este caso max.
DUDAS O PREGUNTAS ESCRIBANLO EN LOS COMENTARIOS


y donde manipulo la base de datos desde netbeans? porfa si me podrias contestar. muchas gracias por la info
ResponderEliminarPues si te referis a modificar, insertar, borrar un registro de oracle desde netbeans(java), pues aqui te dejo un archivo java es una aplicacion que busca, elimina inserta, borra entre otras cosas. Practicamente el abc de los principiantes, nosotros ja ja ja, aqui esta el link http://www.mediafire.com/?f7xbya455g82arn si queres ver el proyecto completo de donde saque esos archivos te dejo el link http://www.mediafire.com/?ssd3n5tquf24qfd. Podes cargar el proyecto desde netbeans, pero primero descomprimilo... Dudas Quejas pues escribime haber si te puedo ayudar en algo mas; espero y esto te sea beneficioso
EliminarMe parece interesante que alguien de rabinal este dando un aporte sobre las útlimas tecnologías. Yo viví un tiempo allá en Guatemala
ResponderEliminarSaludos
Excelente blog :D
ResponderEliminarsegui los pasos como los explicaste aqui (creo :P) pero me arroja este error:
Exception in thread "main" java.sql.SQLException: Excepción de E/S: Got minus one from a read call
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:147)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:257)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:389)
at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:454)
at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:802)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at futbolpro.Main.main(Main.java:10)
Java Result: 1
BUILD SUCCESSFUL (total time: 6 seconds)
a que crees que se deba?? :\
ya revisaste si tu base de datos en oracle esta funcionando, comproba el nombre de tu maquina: revisa esta linea de tu codigo.
EliminarConnection con=DriverManager.getConnection("jdbc: oracle:thin: @localhost:1521:XE","system","password");
seria conveniente que mostraras el codigo fuente de tu programa para ver que tal esta..
Tenes que cambiarle el nombre del equipo, en este caso es "VODKA", tenes que cambiar ese nombre por el tuyo, asi me funciono.
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarSii, atravez de la la pagina inicial de la base de datos de oracle puedo iniciar sesion y hacer todo. Esta todo funcionando. Y con respecto al objeto "con" creo que esta todo bien, el nombre del driver, el de usuario y la contraseña. Y el codigo fuente es el que pusiste en el ejemplo. Hice uno igual (creo) que el del ejemplo :\ no tengo ninguna base de datos creada en el motor de oracle... quizas sea eso :\ en el ejemplo que usaste tenias alguna base ya creada??
Eliminarsí. ya tenes que tener una base de datos creada, en mi caso (empresa) es el usuario de la base de datos y la contraseña es (max), crea una base de datos asigna el nombre de usuario y tu password. aunque podes probar ingresando con los datos predeterminados que otorga oracle creo que los datos son usuario:sys password: (el que le colocaste al instalarlo)...
EliminarPara crear un usuario nuevo entra a oracle. en la opcion de administracion / usuario de base de datos/ crear usuario /llena los datos y selecciona todas las opciones de privilegio de usuario todo tiene que estar chekeado para poder tener acceso a todas las funciones finalmente selecciona el boton CREAR y listo.
proba nuevamente la conexion a oracle con los datos que creaste.. si tenes mas dudas escribi aqui en el blog, tratare de contestarte lo mas rapido que pueda. espero no sea muy urgente tus dudas....
Ok :) tengo mi usuario y todo. Mi duda ahora es que es lo que hace esta consulta
EliminarResultSet rset = stmt.executeQuery("select BANNER from SYS.V_$VERSION");
"BANNER" es alguna tabla que tu creaste? o es alguna que venia creado por defecto? en el resultado del ejemplo que publicaste se ve que da como resultado la informacion del motor de de oracle, me deberia aparecer lo mismo si hago un programa igual a ese? Estoy haciendo un proyecto para un ramo que tengo en mi carrera y el proyecto dice que podemos escoger el lenguaje que uno prefiera, yo escogi java :). La verdad es que no es urgente (aun al menos xD)
ResultSet rset = stmt.executeQuery("select BANNER from SYS.V_$VERSION");
Eliminaresto lo que hace es hacer una consulta sql a la base de datos creada. el banner es una consulta a una tabla que ya esta creada por defecto (como vos habias dicho) y le pido que me muestre la version del sistema.
si lo queres buscar en oracle entra a:
administracion/ acerca de la base de datos/ version
y te muestra el resultado que te deberia dar en java....
muy buen aporte
ResponderEliminarmuy buen aporte amigo gracias por apoyar
ResponderEliminarcual seria el string de conexion para conectar java con oracle, si oracle esta en la maquina virtual.
ResponderEliminarAdemas abria que hacer algo en la maquina virtual para poder llevar a cabo dicha comunicacion??
El string de coneccion es el siguiente: Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@vodka:1521:XE", "empresa", "max");
EliminarNo comprendo; oracle esta en la maquina virtual.. a que maquina virtual te refieres..
Lo que te puedo decir es que si tu estas utilizando una maquina virtual obviamente con un sistema operativo, debiste haber instalado oracle y un lenguaje de programacion este puede ser, java, c#, vb.net, por lo tanto se realizan los mismos paso para realizar una coneccion en este caso de java a oracle
Exelente amigo Gracias por compartir, que DIos te Bendiga
ResponderEliminarmax-chc me puedes mandar un correo estoy interesado hacer un negocio contigo. Correo hdymanuel@gmail.com Ahi te digo cual es el negocio, si estas interesado.
ResponderEliminarSe ve muy interesante gracias por la aportacin lo probaré
ResponderEliminarHola que tal, excelente blog, donde puedo encontrar mas ejemplo para crear conexión javaJ2ee Oracle, disculpa soy nuevo en esto, y tengo que entregar un prototipo
ResponderEliminarola q hace
ResponderEliminarNada
ResponderEliminar