Professional Documents
Culture Documents
Lo primero que necesitaremos son los drivers JDBC en formato jar, incluir este archivo jar en el CLASSPATH de nuestro proyecto y cargarlos en memoria: Oracle: JDBC Download page Oracle
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
Sgueme...
Para crear la conexin, necesitamos una url JDBC, la cual contiene toda la informacin necesaria para conectarse: Oracle: necesitaremos saber el host (el nombre de la mquina o su IP), el puerto de escucha del listener de Oracle (1521 por ejemplo), el servicio o sid, el usuario y la clave. Diferentes formatos de la url JDBC pueden ser:
jdbc:oracle:thin:@host:puerto:sid jdbc:oracle:thin:usuario/clave@host:puerto:sid
casidiablo.net
Me gusta 1.492
casidiablo.net en Facebook
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host)(PORT=puerto)))(CONNECT_
Contacto
jdbc:oracle:thin:usuario/clave@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=host)(PORT=puert
Lo que leo
Ms informacin en FAQ JDBC Oracle: Connections MySql: host (nombre de la mquina o su IP), puerto de escucha (3306 por defecto), nombre de la base de datos, usuario y clave. El formato de la url es:
jdbc:mysql://host:puerto/database jdbc:mysql://host:puerto/database?user=usuario&password=clave
(Ms informacin en MySql JDBC Reference) Una vez tengamos la url JDBC, podemos crear la conexin contra la base de datos:
Connection connection = DriverManager.getConnection(ulr, usuario, clave);
Be Linux My Friend Bloguear por bloguear Casidiablo Media Descarga Juegos El Blog de Guapacho Linux Hispano LuAuF Nierox Pllate un Linux Programacin PHP, Java y C++ Programando Ideas Rincn Informtico rm -rf Que es un ensayo?
Con el objeto connection ya podemos trabajar, sin olvidarnos de que una vez hemos acabado, hay que cerrar la conexin. Esto es muy importante hacerlo, ya que si se queda abierta, estamos desaprovechando recursos, creando lo que se llama connection leaks (conexiones perdidas) con la base de datos. La mejor forma de hacerlo es englobar todo el cdigo en una estructura try/catch/finally y efectuando el cierre de la conexin en el finally. De esta manera nos aseguramos de que falle o no falle el cdigo, se cerrar la conexin.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 Connection connection; try { // ... connection = DriverManager.getConnection(ulr); // ... } finally { if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } }
?
Veamos ahora un par de ejemplos completo. Para Oracle definimos una url que incluye el usuario y la clave, por lo que no necesitaremos pasarle getConnection():
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 import java.sql.*; public class OracleConnection { public static void main(String args[]) { String usuario = "vil"; String password = "secreta"; String host = "localhost"; // tambien puede ser una ip como "192.168.1.14" String puerto = "1521"; String sid = "prueba"; String driver = "oracle.jdbc.driver.OracleDriver"; String ulrjdbc = "jdbc:oracle:thin:" + usuario + "/" + password + "@" + host + ":" + puerto + ":" + sid; Connection connection = null; try { Class.forName(driver).newInstance(); connection = DriverManager.getConnection(ulrjdbc); // Ya tenemos el objeto connection creado
esta
informacin
en
el
mtodo
ResultSet result = connection.createStatement().executeQuery("SELECT 'hola mundo' FROM DUAL"); result.next(); System.out.println(result.getString(1)); } catch (Exception e) { e.printStackTrace(); } finally { if (connection != null) { try { connection.close(); } catch (SQLException e) { } } }
Y para MySQL (usaremos una url sin usuario y clave, por lo que pasaremos esta informacin al mtodo getConnection):
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 import java.sql.*; public class MySQLConnection { public static void main(String args[]) { String usuario = "vil"; String password = "secreta"; String host = "localhost"; // tambien puede ser una ip como "192.168.1.14" String puerto = "3306"; String database = "prueba"; String driver = "com.mysql.jdbc.Driver"; String ulrjdbc = "jdbc:mysql://" + host + ":" + puerto + "/" + database; Connection connection = null; try { Class.forName(driver).newInstance(); connection = DriverManager.getConnection(ulrjdbc, usuario, password); // Ya tenemos el objeto connection creado } catch (Exception e) { e.printStackTrace(); } finally { if (connection != null) { try { connection.close(); } catch (SQLException e) { } } }
?
Resumen para crear una conexin con cualquier base de datos: Insertar en el CLASSPATH el jar con los drivers de nuestra base de datos (drivers Oracle, drivers MySQL o buscar en Google drivers jdbc basededatos) Cargar los drivers con Class.forName(sdriver).newInstance(); , siendo sdriver un String con la clase del driver. Crear la conexin con DriverManager.getConnection(ulrjdbc,
usuario, password); , siend urljdbc una url con el formato que
url basededatos) Cerrar siempre la conexin dentro del finally Tomado de Yo, Programador, un blog de programacin y tecnologa escrito por Alberto Vilches. Este artculo est licenciado con:
2 enlaces entrantes
JDBC Mtodos de conexin a un SGBD desde un lenguaje de programacin
como hago para instanciar la conexion una solo ves en todo el proyecto, es decir si tengo varios formularios no volver a crear la conexion para cada formulario, se puede hacer eso? Responder
vilches dice:
octubre 15, 2009 a las 9:55 am
maria dice:
abril 10, 2010 a las 3:03 pm
como puedo importar tablas de sql a java y como puedo modificar y eliminar Responder
julio dice:
noviembre 5, 2010 a las 2:48 am
tengo problemas con el driver estoy usando oracle 10g(xe) y netbeans 6.9 al correr mi aplicasion marca un error en el driver pero nose ke es Responder
Angel dice:
septiembre 22, 2011 a las 6:39 am
Una puntualizacin. Se puede poner simplificar la linea: Class.forName(driver).newInstance(); por: Class.forName(driver); El DriverManager (en la siguiente linea) se entera igual de que hay un driver nuevo.
Jose dice:
octubre 25, 2011 a las 6:26 am
En la 10.2.0.1.0 he podido conectar as: Connection conn = DriverManager.getConnection (jdbc:oracle:thin:@//servidor.subdominio.dominio.es:1523/SERVICIO, usuario, contrasea); Responder
TU SI MAM!! m podes creer k no encontraba ese codigo en ninguna parte? si man vales un PER CARAJO! Responder
edgar dice:
septiembre 3, 2012 a las 7:40 pm
Djanos tu comentario!
Tu nombre
Homepage
Tu comentario
Enviar comentario