domingo, 22 de septiembre de 2013

Conectar Oracle con Eclipse

Programas o Software requerido

Para realizar la conexión necesitamos tener los siguientes programas:

Ahora debemos conocer al usuario SYS de nuestra base de datos para ella haremos los siguientes pasos:

Paso 1 - Acceder:

Si tienen windows 7 busquen en inicio Run SQL Command Line o en caso contrario ingresen al CMD o linea de comando y escriban sqlplus /nolog, en cualquiera de los dos casos en la pantalla de comando se mostrará lo siguiente:

Microsoft Windows [Versión 6.1.7601]   
Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos.

C:\Users\PC>sqlplus /nolog
SQL*Plus: Release 11.2.0.2.0 Production on Dom Sep 22 23:44:35 2013
Copyright (c) 1982, 2010, Oracle.  All rights reserved.

SQL>

Paso 2 - Conectarse:

Luego deberá identificarse como usuario sysdba, para ellos ingresar lo siguiente:

SQL*Plus: Release 11.2.0.2.0 Production on Dom Sep 22 23:55:12 2013
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
SQL> conn system/jhon as sysdba
Connected.
SQL> show user
USER is "SYS"

Paso 3 - Crear una base de datos:

Ahora creamos nuestra base de datos a conectar con Eclipse (Les dejo de ejemplo una base de datos que cree para una tienda de ventas)

  1. DECLARE
  2. N INT;
  3. COMMAND VARCHAR2(200);
  4. BEGIN
  5. COMMAND := 'DROP USER TIENDA CASCADE';
  6. SELECT COUNT(*) INTO N
  7. FROM DBA_USERS
  8. WHERE USERNAME = 'TIENDA';
  9. IF ( N = 1 ) THEN
  10. EXECUTE IMMEDIATE COMMAND;
  11. END IF;
  12. END;
  13. /
  14. CREATE USER TIENDA IDENTIFIED BY CLAVE;
  15. GRANT CONNECT, RESOURCE TO TIENDA;
  16. -- =============================================
  17. -- CONECTARSE A LA APLICACIÓN
  18. -- =============================================
  19. CONNECT TIENDA/CLAVE
  20. -- -----------------------------------------------------
  21. -- Tabla Empleado
  22. -- -----------------------------------------------------
  23. CREATE TABLE empleado (
  24. empl_DNI INT NOT NULL ,
  25. empl_Paterno VARCHAR(45) NOT NULL ,
  26. empl_Nombre VARCHAR(45) NOT NULL ,
  27. empl_Materno VARCHAR(45) NOT NULL ,
  28. empl_email VARCHAR(25) NULL ,
  29. empl_telefono VARCHAR(16) NULL ,
  30. empl_Direccion VARCHAR(65) NOT NULL ,
  31. empl_usuario VARCHAR(12) NOT NULL ,
  32. empl_clave VARCHAR(10) NOT NULL
  33. );
  34. ALTER TABLE empleado
  35. ADD CONSTRAINT PK_empleado
  36. PRIMARY KEY (empl_DNI);
  37. ALTER TABLE empleado
  38. ADD CONSTRAINT U_empleado
  39. UNIQUE (empl_usuario);

Este código crea el usuario TIENDA identificado con CLAVE, luego inicia sesión con este usuario y crea la tabla.

Paso 4 - Proyecto en Eclipse:

Ahora procedemos a Eclipse donde creamos un nuevo proyecto, colocamos el nombre del proyecto como queramos llamarlo. Luego continuamos y vamos a la pestaña Libraries (Bibliotecas) y dentro de ella agregamos una nueva (Add Library).

Despliega una nueva ventana y elegimos la opción Connectivity Driver Definition,lo más seguro es que su lista este vacía así que al lado hay un icono con la descripción New Driver Definition, la elegimos y damos un clic.

En una nueva ventana escogemos Oracle dentro de la opción Vendor Filter. Aparecerán muchas opciones con "Oracle Thin Driver", seleccionar el que corresponde a la versión de nuestra BD. En mi caso System version será 11.

Ahora la biblioteca esta configurada, pero no el archivo jar necesario, entonces se debe seleccionar la biblioteca Oracle Thin Driver y dar clic a la opción Add External JARs y luego seleccionar el archivo JAR correspondiente, en mi caso el ojdbc14, y aceptar.

Dentro del proyecto se observa las bibliotecas del Jdk y de Oracle

Paso 5 - Clase de conexión y prueba:

Creo un paquete de nombre accesoBD y dentro de el la Clase AccesoBD la cual tendrá la siguiente codificación:
  1. package accesoBD;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. public class AccesoBD {
  5. public static Connection getConnection() throws Exception{
  6. Connection cn;
  7. Class.forName("oracle.jdbc.OracleDriver").newInstance();
  8. String url = "jdbc:oracle:thin:@localhost:1521:XE";
  9. cn = DriverManager.getConnection(url, "TIENDA", "CLAVE");
  10. return cn;
  11. }
  12. }

  • Bien ahora que son cada una de estas cosas, hay que recalcar que los valores que varían generalmente y nos interesan son:
   oracle.jdbc.OracleDriver
   jdbc:oracle:thin:@localhost:1521:XE
   url, "TIENDA", "CLAVE"
  • El primero hace referencia al driver de oracle, si utilizáramos otra base de datos usaríamos otro driver
  • El segundo al URL de nuestra base de datos generalmente la obtendrán con la siguiente fórmula jdbc:oracle:thin:@[HOST][:PORT]:SID todos estos datos son proporcionados por oracle durante la instalación y en caso deseen conocerlos pueden utilizar la herramienta SqlDeveloper o la perspectiva de Base de datos de Eclipse o Netbeans para encontrar el URL.
  • Bueno el tercero llama a nuestra URL, luego coloca el nombre de USER y a continuación la clave por la cual se identifica.
  • Ahora probemos si tenemos una conexión exitosa o no creando una clase Prueba. java dentro de un paquete al que yo llamaré test

  1. package services;
  2. import java.sql.Connection;
  3. import java.sql.PreparedStatement;
  4. import javax.swing.JOptionPane;
  5. import accesoBD.AccesoBD;
  6. public class PruebaBD {
  7. public static void main(String[] args) {
  8. Connection cn = null;
  9. try {
  10. cn = AccesoBD.getConnection();
  11. cn.setAutoCommit(false);
  12. String query = "INSERT INTO EMPLEADO VALUES "
  13. + "('Empl1', 'Coronel', 'Castillo',"
  14. + " 'Gustavo', 'GCoronel', '123456')";
  15. PreparedStatement pstm = cn.prepareStatement(query);
  16. pstm.executeUpdate();
  17. cn.commit();
  18. JOptionPane.showMessageDialog(null,
  19. "Conexion correcta \n Empleado agregado", null,
  20. JOptionPane.INFORMATION_MESSAGE);
  21. } catch (Exception e) {
  22. JOptionPane.showMessageDialog(null, "ERROR", null,
  23. JOptionPane.INFORMATION_MESSAGE);
  24. try {
  25. cn.rollback();
  26. } catch (Exception e1) {
  27. }
  28. }
  29. }
  30. }