Hola a todos... este es mi primer post en el blog y quiero explicar como conectarse a una base de datos Oracle.
Para el caso de este ejemplo lo voy a realizar con una Oracle Database Express Edition 11G. Este procedimiento sirve independiente que sea express o no. Lo que debemos tener muy presente es contar con Driver (esto del driver lo veremos mas adelante) para realizar una conexión exitosa.
Lo primero es que debemos contar con la BD instalada:
Iniciamos la instancia de la BD, para esto vamos a Inicio/Todos los programas/Oracle Database 11g Express Edition y le damos iniciar base datos (Start Database) de la siguiente forma:
Ya tenemos lista la BD para interactuar con ella, ahora vamos a nuestro IDE preferido para desarrollo de código en Java, yo utilizo NetBeans ya que ayuda mucho en la elaboración de código. La versión utilizada para este ejemplo es la 7.2:
Creamos un nuevo proyecto y le colocamos el nombre que deseemos:
Una vez creado procedemos a agregar el driver al proyecto, el driver es un archivo .jar que se ubica en la instalación del Oracle C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib\ojdbc6.jar, lo que vamos a hacer ahora es agregarlo como una librería a nuestro proyecto:
Vamos a la ruta mencionada y seleccionamos el archivo mencionado, finalmente se verá algo así:
Ahora agregamos una nueva clase a nuestro proyecto la cual llamaremos "ConexionOracle", en esta dispondremos el código necesario para la conexión:
Ahora agregamos el código necesario para la conexión (El código se encuentra comentado lo mejor posible para saber que es cada línea):
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import oracle.jdbc.driver.OracleDriver;
public class ConexionOracle {
//Usuario de la base de datos
private final String USUARIO = "hr";
//Contraseña del usuario de la base de datos
private final String PASS = "hr";
//SID de la base de datos, este lo registramos en la instalacion
private final String SID = "xe";
//Host donde se encuentra la base de datos, para nuesto caso como es local
//se indica que esta en localhost
private final String HOST = "localhost";
//El puerto 1521 es el estandar para este tipo de instalaciones a menos que
//se indicque lo contrario
private final int PUERTO = 1521;
//Objeto donde se almacenara nuestra conexion
private Connection connection;
public Connection getConnection() {
return connection;
}
/*
* Instanciamos un objeto de tipo OracleDriver para regitrarlo y posterior uso
* este objeto lo provee el driver que agregamos al principio
*/
public void registrarDriver() throws SQLException {
OracleDriver oracleDriver = new oracle.jdbc.driver.OracleDriver();
DriverManager.registerDriver(oracleDriver);
}
/*
* Procedemos a realizar nuestra conexion a la base datos, para esto nos
* aseguramos que el objeto este null o que este cerrada la conexion.
*
* cadanaConexion: es un string que se contruye a partir de los atributos
* definidos.
*
* Finalmente obtenemos la conexion. El metodo "getConnection"
* lanza una excepcion la cual propagamos "throws SQLException".
*/
public void conectar() throws SQLException {
//System.out.println(connection);
if (connection == null || connection.isClosed() == true) {
String cadenaConexion = "jdbc:oracle:thin:@" + HOST + ":" + PUERTO + ":" + SID;
registrarDriver();
connection = DriverManager.getConnection(cadenaConexion, USUARIO, PASS);
}
}
/*
* Con este metodo cerramos la conexion una vez hayamos terminado de usar la
* base de datos
*/
public void cerrar() throws SQLException {
if (connection != null && connection.isClosed() == false) {
connection.close();
}
}
/*
* Main para comprobar que funciona, aqui hacemos un select a una tabla del
* sistema para obtener la version.
*/
public static void main(String args[]) {
ConexionOracle conexionOracle = new ConexionOracle();
try {
conexionOracle.conectar();
Connection conn = conexionOracle.getConnection();
// 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();
conexionOracle.cerrar();
} catch (SQLException ex) {
Logger.getLogger(ConexionOracle.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Cuando tengamos el código listo, ejecutamos la aplicación del triangulo verde y tendremos el siguiente resultado:
Como ven es bastante sencillo pero se puede volver un dolor de cabeza mas cuando se esta iniciando en el mundo de las bases de datos.
Espero este post sea del agrado y ayuda en sus proyectos.
Nos vemos en la próxima.