 |
|
 |
Como conectar a ORACLE con Java
¿Que es JDBC y para que se utiliza?
JDBC es la interfaz que proporciona Java para la conexión a bases de datos. Son un conjunto de clases e interfaces que permiten a Java ejecutar consultas y ordenes en una bases de datos.
Para poder conectar a Java con ORACLE lo primero que necesitamos es la implementación de JDBC para ORACLE. Esta implementación se encuentra en el archivo Classes12.jar que podemos encontrar en el siguiente directorio del servidor de Oracle.
%ORACLE_HOME%\jdbc\lib
ORACLE_HOME es una variable de entorno que se crea durante la instalación del servidor ORACLE, y que indica donde está instalado fisicamente ORACLE dentro del sistema de archivos, normalmente C:\oracle\ora92 para servidores Windows y ORACLE 9i. Esta .misma nomenclatura se aplica al hablar de la instalación cliente
Debemos configurar correctamente nuestra variable CLASSPATH para incluir en ella el archivo Classes12.jar.
Oracle proporciona los siguientes drivers en su implementacion JDBC:
- JDBC Thin Driver: No requiere de la instalación cliente de ORACLE. Ideal para Applets.
- 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)
import java.sql.*; class dbAccess { public static void main (String args []) throws SQLException {
DriverManager.registerDriver (new oracle.jdbc.driver.OracleDriver());
Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@WIN01:1521:oracleBD", "user", "passw"); // driver@machineName:port:SID , userid, 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();
} } |
Conectar a ORACLE con JDBC OCI Driver
El driver JDBC OCI usa el API ORACLE OCI (Oracle Call Interface) para interactuar con ORACLE, por lo que es necesaria la instalación y configuración de la parte cliente de ORACLE. El driver OCI trabaja con SQL*Net o Net8, por lo que tamdebemos haber creado un alias en el archivo TNS names (%ORACLE_HOME%\network\ADMIN):
ORACLEBD = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = WIN01)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORACLEBD) ) )
| El driver JDBC OCI permite realizar llamadas a ORACLE OCI directamente desde Java proporcionando un alto grado de compatibilidad con una versión específica de ORACLE utilizando métodos nativos, pero específicos de la plataforma.
import java.sql.*; class dbAccess { public static void main (String args []) throws SQLException { try { Class.forName ("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); }
Connection conn = DriverManager.getConnection ("jdbc:oracle:oci:@ORACLEBD", "user", "passw"); // @TNSNames_Entry, userid, 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(); } } |
Conectar a ORACLE con JDBC KPRB Driver
Por último el driver ORACLE JDBC KPRB es utilizado para escribir en Java procedimientos almacenados, funciones, triggers ... Ofrece acceso a la conexion activa por lo que no es necesario crear ninguna conexión adicional.
El driver JDBC KPRB de ORACLE permite obtener un handle de la conexion actual del contexto a través del método OracleDriver.defaultConenction(). Como hemos dicho, se utiliza para procedimientos almacenados, triggers .... Para ejecutar un procedimiento almacenado debemos estar conectados a ORACLE a través de una herramienta cliente como SQL*Plus., lo que hacemos con defaultConenction() es acceder a está conexion.
CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED BANNER AS import java.sql.*; class dbAccess { public static String showBanner() throws SQLException { String banner=""; Connection conn = (new oracle.jdbc.driver.OracleDriver()).defaultConnection();
Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery("select BANNER from SYS.V_$VERSION"); while (rset.next()) banner += rset.getString(1); //stmt.close(); NO CERRAR LA CONEXION return banner; } }
|
Es necesario crear un "wrapper" para poder ejecutar el programa desde PL/SQL o SQL.
CREATE OR REPLACE FUNCTION ShowBanner RETURN VARCHAR2 IS LANGUAGE JAVA NAME 'dbAccess.showBanner() return java.lang.String';
|
Una vez hecho esto, podemos ejecutar la función como si se tratase de una función PL/SQL.
SELECT ShowBanner FROM DUAL;
|
Saludos,
DJK
|
| |
 |
como conectar oracle y MySQL con java
por
ivan carrascal
Respuesta recibida el [31/03/2007 05:17:11]
|
 |
hola Pedro, me encuentro haciendo un programa en lenguaje de programacion java y necesito conectarla con los motores que coloque como titulo, he intentado conectarlas pero los drivers no me sirven ¿que puedo hacer? gracias
|
| |
 |
nose
por
Sandra Castro
Respuesta recibida el [23/05/2007 06:34:33]
|
 |
interesante el articulo
|
| |
 |
Erro al conectar
por
ROmmel
Respuesta recibida el [30/05/2007 11:37:11]
|
 |
Me saco los pelos con el error q sale q es "VIolacion de Protocolo" he instaldo el oracle ma de 5 veces, el codigo de conexion en JBUILDER esta bien. quisas sepan q tengo q configurar para desaparecer ese error Gracias
|
| |
 |
Tengo la version express edition de oracle
por
Juan Chumpitaz
Respuesta recibida el [24/06/2007 01:58:45]
|
 |
buenas deseo conectarme da java a oracle pero tengo la version express edition en todo caso si alguien me pueda apoyar se o agradeceria mucho
|
| |
 |
Gracias!!
por
yech
Respuesta recibida el [30/10/2007 07:29:41]
|
 |
Gracias pana!! me fue muy util esta publicación. Saludos desde Venezuela.
|
| |
 |
mmmm!!! tengo dudas aun
por
Brenda
Respuesta recibida el [23/11/2007 08:07:58]
|
 |
Hola soy primeriza en este aspecto de conecciones, entonces no se si podrias explicar un paso a paso, lo que pasa es que me dijeron que tengo que configurar el path en blueJ que en estet caso es el ide que utilizo y hacer otras cosillas de las cuales no tengo idea, en cuento al codigo que tu nos proporcionas lo implemento en alguna parte en especifico??, es necesario modificar algo??. De ante mano gracias dejo mi mail por cualquier cosa brendaiturbe@gmail.com
|
| |
 |
configuracion y conexion a oracle9i con php5
por
gil mejia
Respuesta recibida el [04/03/2008 06:03:34]
|
 |
HOLA A TODOS!!!
Soy nuevo en php y oracle, tengo una serie de problemas que me gustaría que me ayudaran, tengo instalado el oracle 9i, y no puedo conectarme en el con php.
Tengo instalado:
- Oracle 9i - El appserv-win32-2.5.9, que contiene el Apache Web Server 2.2.4, el PHP 5.2.3
He hecho lo siguiente:
- verifique que el Apache estuviera bien instalado. - Verifique que el PHP estuviera bien instalado
Hasta aquí todo estaba correcto…
Ahora hice algunas modificaciones para poder conectarme a Oracle, que son las siguientes:
a. Se modificó el archivo "php.ini" que se había copiado en anteriormente a "C:\WINDOWS"
extension=php_oci8.dll (se quitó el ; al inicio) y cuando le doy a phpinfo.php ya me aparece el oci8 como
OCI8 Support enabled Version 1.2.3 Revision $Revision: 1.269.2.16.2.32 $ Active Persistent Connections 0 Active Connections 0 Temporary Lob support enabled Collections support enabled
Directive Local Value Master Value oci8.default_prefetch 10 10 oci8.max_persistent -1 -1 oci8.old_oci_close_semantics 0 0 oci8.persistent_timeout -1 -1 oci8.ping_interval 60 60 oci8.privileged_connect Off Off oci8.statement_cache_size 20 20
b. Se bajó el instant client de oracle de la ruta:
http://www.oracle.com/technology/tech/oci/instantclient/instantclient.html y fue el instantclient_11_1
c. Se descomprimió el archivo en c:\oracle\ y se dejaron solamente los archivos: oraociei11.dll orannzsbb11.dll oci.dll
d. Se configuraron las variables de entorno:
NLS_LANG = AMERICAN_AMERICA.WE8ISO8859P1 PATH = C:\oracle\instantclient_11_1;+... LD_LIBRARY_PATH = C:\oracle\instantclient_11_1 TNS_ADMIN = C:\oracle\instantclient_11_1 (para poder copiar los tnsnames.ora en C:\oracle\instantclient_11_1)
e. Se copió el archivo OCI.DLL en el directorio: C:\WINDOWS
g. Reinicie el sistema...
Pero al momento de querer hacer una consulta no puedo.
<?php $c = oci_connect('usuario', 'contraseña', 'nom_BD'); …… ?>
Me manda el siguiente error, no se si a mis librerias les falte algo
Cabe señalar que mis carpetas quedaron de la siguiente manera,
C:\AppServ\Apache 2.2 C:\AppServ\php5 C:\AppServ\www
Si lo desean envíame un correo
Correo: sedmiedo@hotmail.com
De antemano gracias...
|
| |
 |
Excelente
por
MorelaGL
Respuesta recibida el [24/03/2008 10:12:43]
|
 |
Muy util, me gusto la forma sencilla en la que esplica las diferentes formas de conexión.
|
| |
 |
Buenos Ejemplos
por
Ruben Herrera
Respuesta recibida el [24/03/2008 02:03:09]
|
 |
Primero que nada, Saludos.
Este articulo es muy util para iniciar con java y oracle.
|
| |
 |
hola yo necesito saber como me...
por
Anónimo
Respuesta recibida el [26/06/2008 03:11:20]
|
 |
hola yo necesito saber como mediante java invocar un procedimiento que corre sobre la base de datos
|
| |
 |
conexion a java
por
andres
Respuesta recibida el [11/09/2008 02:48:21]
|
 |
ya tengo todo lo deyava la base de datos en java me falta la conexion a java realmente nose como se conecta ayudenme un ejemplo 2semestre de sistemas es una investigacino
|
| |
 |
richard
por
richard
Respuesta recibida el [23/09/2008 11:05:23]
|
 |
graxias por iti 7 desde mexico
|
| |
 |
Hola me gustaria que me ayudes...
por
Anónimo
Respuesta recibida el [17/10/2008 10:50:21]
|
 |
Hola me gustaria que me ayudes con el codigo de coneccion a la base de datos oracle 9i desde una aplicacion en C#
|
| |
 |
Gracias
por
Jorge
Respuesta recibida el [29/10/2008 09:19:54]
|
 |
Gracias !!! funciona perfecto !!!
Saludos desde Chile
|
| |
 |
contesten las preguntas ...
por
yop
Respuesta recibida el [09/01/2009 10:38:30]
|
 |
No se para q permiten comentarios si es que no van a contestar alguno..
|
| |
 |
Muchas*10000 GRacias
por
YO
Respuesta recibida el [21/03/2009 04:26:04]
|
 |
Habia estado buscando una forma de como conectar una base y wow gracias por el dato
|
| |
 |
PHP y Oracle
por
Double M
Respuesta recibida el [29/04/2009 10:45:20]
|
 |
Para el que preguntó de PHP y Oracle: hay dos formas de usar Oracle con PHP, una es mediante la libreria Oracle y la otra es la OCI8 (la mas eficiente), para la librería Oracle solo es necesario que edites el php.ini y lo "descomentes" (siempre y cuando ya tengas algun Oracle instalado), TEN EN CUENTA QUE SE INSTALAN COMO 3 ARCHIVOS PHP.INI, verifica que editas el correcto o de plano edita todos, la linea se llama tal cual "oracle", para usar la OCI8 necesitas usar Oracle 10g y hacer lo mismo de quitar de comentarios el "oci8", debes reiniciar el servicio de apache y después puedes irte a phpinfo para verificar que se agregara.
En la página de Oracle puedes encontrar información extra, sin embargo te dicen cosas como que necesitas editar las variables de sesión y descargar ciertos archivos, no te confundas, solo es necesario bajarlos y editar las variables de sesion si no tienes el Oracle 10g y quieres usar OCI8 para conectar PHP.
¡¡Mexico Rifa!!
Nota: El articulo de esta página estaba relacionado con Java, estas algo perdido pero espero te ayude mi comentario.
|
| |
 |
Muy instructivo
por
VIBLA
Respuesta recibida el [08/05/2009 12:14:13]
|
 |
Gracias, prueba superada
|
| |
 |
Buena Onda
por
PEDRO Q.
Respuesta recibida el [28/05/2009 03:36:56]
|
 |
Buena onda brother, me sirvio mucho.
|
| |
 |
triggers
por
elder
Respuesta recibida el [18/06/2009 10:31:46]
|
 |
mira amigo yo necesito autogenerar el codigo universitario de un sistema de matricula como lo ago
|
| |
 |
Conexion de java a Oracle Express
por
macl
Respuesta recibida el [02/09/2009 09:39:49]
|
 |
Que tal tengo el oracle express y necesito hacer una conexion de java a oracle con un breve ejemplo de inicio de secion para probar la conexion .
Por favor ayuda
|
| |
 |
oracle xe
por
Héctor
Respuesta recibida el [11/10/2009 01:33:39]
|
 |
hola, apenas me estoy estrellando con oracle,lo unico que he hecho es descargarlo, quizera saber una cosa los archivos jdbc que aparecen en la pagina de oracle son muchos, yo me guio por el jdk pero no hay para 1.6 que es el que tengo el que uste recomienda es el Classes12.jar que segun vi en la pagina de oracle es para jdk 1.2 ando con ese problema no se cual bajar, tengo el Oracle Database 10g Express Edition Release 10.2.0.1.0, ayuda por favor
gracias de antemano muy sustancial el articulo
|
| |
 |
CONECION ORACLE CON JSP
por
YAIR
Respuesta recibida el [13/10/2009 04:31:05]
|
 |
ESTOY CONFUNDIDO SOY NUEVO EN ESTO ESTOY UTILIZANDO ORACLE 10 EXPRESS PERO AHI SOLO CREO USUARIO Y LAS TABLAS NO SE DE DONDE SALE EL NOMBRE QUE LE DAN A LA BASE DE DATOS EN VERDAD NO LO ESTIENDO POR EJEMPLO AHI import java.sql.*; class dbAccess { public static void main (String args []) throws SQLException { try { Class.forName ("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } Connection conn = DriverManager.getConnection ("jdbc:oracle:oci:@ORACLEBD", "user", "passw"); // @TNSNames_Entry, userid, 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(); } ESE ES TODO EL CODIGO PERO ESTA PARTE ME LLAMA LA ATENCION DriverManager.getConnection ("jdbc:oracle:oci:@ORACLEBD", "user", "passw"); // OSEA ESTA LA IP EL PUERTO DESPUES BIENE EL NOMBRE DE LA BASE SUPONGO EL USUARIO Y EL PASSWOR DE DONDE SACO EL NOMBRE DE LA BASE SI SOLO SE CREAN USUA RIOS Y EL PASSWORD NO ENTIENDO AYUDENME
|
| |
 |
YAIR - en castellano
por
Kokumo
Respuesta recibida el [11/12/2009 09:48:23]
|
 |
Yair, no te enojes, pero si no escribís utilizando signos de puntuación, es muy difícil entenderte.
|
| |
 |
Oracle
por
nolasco
Respuesta recibida el [18/12/2009 03:50:07]
|
 |
como insert tablas y lugo ingresar ddatos ejemplo isert value ("nolasco","quispe","tipti) algo asi
|
| |
 |
Conexiones URL diferentes
por
Darkblado
Respuesta recibida el [02/02/2010 07:56:21]
|
 |
Hola:
Para colaborar un poco, existen otras formas de conexión tipo thin:
jdbc:oracle:thin:user/password@host:1521:oracleBD
jdbc:oracle:thin:user/password@:1521:oracleBD
jdbc:oracle:thin:user/password@//localhost:1521/oracleBD
jdbc:oracle:thin:user/password@//:1521/oracleBD
jdbc:oracle:thin:user/password@//localhost/oracleBD
jdbc:oracle:thin:user/password@//localhost/oracleBD
jdbc:oracle:thin:user/password@///oracleBD
Espero les sirva. hasta pronto.
|
| |
 |
Respuesta YAIR
por
Darkblado
Respuesta recibida el [02/02/2010 08:00:11]
|
 |
Hola:
Bien el crea por defecto una base de datos denominada XE, puede ver el comentario en la parte superior para cambiar oracleBD por XE, user por hr y password por hr (claro debió primero desbloquear este usuario por medio del SYSTEM). Feliz día.
|
| |
 |
Conexión remota
por
Chaparral
Respuesta recibida el [04/02/2010 06:34:05]
|
 |
Hola a todos, quien me puede decir como conecto JAVA, a una base de datos remota usando conexión de internet, me urge averiguarlo, por favor ayudenme.
|
| |
 |
Respuesta Chaparral
por
Darkblado
Respuesta recibida el [08/02/2010 06:41:12]
|
 |
Hola:
La conexión remota la puedes hacer por medio de un cliente e intalando el TOAD (si estamos hablando de Oracle) ese tipo de conexión es OCI tal cual como se muestra en el ejemplo de la parte superior.
En java puedes crear una clase que se llame conexión y utilizas las URL que di en la parte superior. Recuerda que en el servidor al que te conectas debes de tener un usuario y un password, habla claramente para que configuren los permisos y puedas crear vistas y tablas.
Suerte!
|
| Añadir comentario ... |
Para preguntar utiliza los foros
|
|

|
Como conectar a ORACLE con Java |
|
Autor:
Pedro Herrarte Sánchez
|
|
Visitas:
82578 |
Fecha de publicación:
10/10/2006 |
Pedro Herrarte, es consultor independiente, ofreciendo servicios de consultoría, análisis, desarrollo y formación.
Posee mas de diez años de experiencia trabajando para las principales empresas de España.
Es especialista en tecnologías .NET, entornos Web, bases de datos (SQL Server y ORACLE) e integración de sistemas.
Es experto en desarrollo (C#, ASP.NET, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE).
Es fundador, diseñador y programador de www.devjoker.com. |
|
|
Visitas:
108
|
Comentarios:
3
|
Archivo:
Articulos
|
Visitas:
809
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
764
|
Comentarios:
3
|
Archivo:
Articulos
|
Visitas:
667
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
3176
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
14560
|
Comentarios:
7
|
Archivo:
Articulos
|
Visitas:
1494
|
Comentarios:
3
|
Archivo:
Articulos
|
|
Visitas:
695
|
Comentarios:
2
|
Archivo:
Articulos
|
|
Visitas:
369
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
2034
|
Comentarios:
2
|
Archivo:
Articulos
|
|
|
 |
|
 |