Programas o Software requerido
Para realizar la conexión necesitamos tener los siguientes programas:- Eclipse (Pueden elegir la versión que deseen así como la arquitectura de su Pc o Mac): http://www.eclipse.org/downloads/packages
- Oracle Database 11g(Recomiendo la express edition y también deben elegir su arquitectura): http://www.oracle.com/technetwork/products/express-edition/downloads/index.html?ssSourceSiteId=otnes
- Oracle Database 19c (Es la versión más moderna, se debe elegir el sistema operativo y la arquitectura del mismo): https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#19c
- Además de estos necesitamos los drivers de Oracle en caso que no los posean acá les dejo dos para la versión express se utiliza el 14 y para la enterprise la 14.
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)
DECLARE
N INT;
COMMAND VARCHAR2(200);
BEGIN
COMMAND := 'DROP USER TIENDA CASCADE';
SELECT COUNT(*) INTO N
FROM DBA_USERS
WHERE USERNAME = 'TIENDA';
IF ( N = 1 ) THEN
EXECUTE IMMEDIATE COMMAND;
END IF;
END;
/
CREATE USER TIENDA IDENTIFIED BY CLAVE;
GRANT CONNECT, RESOURCE TO TIENDA;
-- =============================================
-- CONECTARSE A LA APLICACIÓN
-- =============================================
CONNECT TIENDA/CLAVE
-- -----------------------------------------------------
-- Tabla Empleado
-- -----------------------------------------------------
CREATE TABLE empleado (
empl_DNI INT NOT NULL ,
empl_Paterno VARCHAR(45) NOT NULL ,
empl_Nombre VARCHAR(45) NOT NULL ,
empl_Materno VARCHAR(45) NOT NULL ,
empl_email VARCHAR(25) NULL ,
empl_telefono VARCHAR(16) NULL ,
empl_Direccion VARCHAR(65) NOT NULL ,
empl_usuario VARCHAR(12) NOT NULL ,
empl_clave VARCHAR(10) NOT NULL
);
ALTER TABLE empleado
ADD CONSTRAINT PK_empleado
PRIMARY KEY (empl_DNI);
ALTER TABLE empleado
ADD CONSTRAINT U_empleado
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:package accesoBD;
import java.sql.Connection;
import java.sql.DriverManager;
public class AccesoBD {
public static Connection getConnection() throws Exception{
Connection cn;
Class.forName("oracle.jdbc.OracleDriver").newInstance();
String url = "jdbc:oracle:thin:@localhost:1521:XE";
cn = DriverManager.getConnection(url, "TIENDA", "CLAVE");
return cn;
}
}
- 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
package services;
import java.sql.Connection;
import java.sql.PreparedStatement;
import javax.swing.JOptionPane;
import accesoBD.AccesoBD;
public class PruebaBD {
public static void main(String[] args) {
Connection cn = null;
try {
cn = AccesoBD.getConnection();
cn.setAutoCommit(false);
String query = "INSERT INTO EMPLEADO VALUES "
+ "('Empl1', 'Coronel', 'Castillo',"
+ " 'Gustavo', 'GCoronel', '123456')";
PreparedStatement pstm = cn.prepareStatement(query);
pstm.executeUpdate();
cn.commit();
JOptionPane.showMessageDialog(null,
"Conexion correcta \n Empleado agregado", null,
JOptionPane.INFORMATION_MESSAGE);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "ERROR", null,
JOptionPane.INFORMATION_MESSAGE);
try {
cn.rollback();
} catch (Exception e1) {
}
}
}
}
No hay comentarios:
Publicar un comentario