Base de datos de conexión JDBC
La programación que implica establecer una conexión JDBC es bastante simple. Aquí hay cuatro simples pasos:
Importación del paquete JDBC:
La declaración de importación le dice al compilador Java dónde encontrar las referencias en el código y colocar la clase al comienzo de su código fuente.
Usando el paquete JDBC estándar, permite la selección, inserción, actualización y eliminación de datos de las tablas SQL, agregando las siguientes importaciones a su código fuente:
import java.sql.*; // para programas JDBC estándar java.math.*; // para soporte BigDecimal y BigInteger
Registre el controlador JDBC:
Antes de usarlo, debe registrar su controlador en el programa. Un controlador registrado es un proceso de implementación en el que el archivo de clase del controlador Oracle se carga en la memoria para que pueda usarse como una interfaz JDBC.
Debe hacer este registro solo una vez en su programa. Un conductor se puede registrar de una de dos maneras.
Método (i) - class.forname ():
El método más común para registrar un controlador es usar el método de Java Class.Forname () para cargar dinámicamente los archivos de clase del controlador en la memoria, y lo registrará automáticamente. Este enfoque es deseable porque permite al controlador registrar la configuración para una fácil portabilidad.
El siguiente ejemplo usa class.forname () para registrar un controlador Oracle:
Pruebe {class.forname ("oracle.jdbc.driver.oracledriver");} catch (classNotFoundException ex) {System.out.println ("Error: ¡No se puede cargar la clase de controlador!"); System.exit (1);}Puede usar el método getInstance () para resolver JVM incompatibles, pero dos excepciones adicionales se escriben de la siguiente manera:
Pruebe {class.forname ("oracle.jdbc.driver.oracledriver"). newInstance ();} Catch (ClassNotFoundException ex) {System.out.println ("Error: ¡no se puede cargar la clase de controlador!"); System.exit (1); Catch (ilegalAccessException ex) {System.out.println ("Error: ¡Problema de acceso al cargar!"); System.exit (2); Catch (InstanciationException ex) {System.out.println ("Error: ¡No se puede instanciar el controlador!"); System.exit (3);} Método (ii) - Drivermanager.RegisterDriver ():
La segunda forma de usarlo para registrar un controlador es usar el método staticDivermanager.registerDriver ().
Debería, si está utilizando un JDK JVM incompatible, por ejemplo, Microsoft proporciona un método utilizando registro de registro ().
El siguiente ejemplo usa RegisterDriver () para registrar el controlador Oracle:
Pruebe {Driver mydriver = new Oracle.jdbc.driver.oracledriver (); Drivermanager.RegisterDriver (mydriver);} Catch (ClassNotFoundException ex) {System.out.println ("Error: ¡No se puede cargar la clase del controlador!"); System.exit (1);} Formulación de URL de la base de datos:
Al cargar el controlador, puede establecer una conexión en el programa utilizando el método Drivermanager.getConnection (). Para una fácil referencia, enumeremos tres métodos de drivermanager.getConnection () sobrecargados:
Aquí, cada formulario requiere una URL de la base de datos. La URL de la base de datos apunta a la dirección de la base de datos.
El desarrollo de una URL de la base de datos se usa más comúnmente para establecer conexiones.
La siguiente tabla enumera los populares nombres de controladores JDBC y URL de base de datos.
Formato de URL de nombre del controlador RDBMSJDBC
Mysql com.mysql.jdbc.driver jdbc: mysql: // hostname/dataBASEnameRacle oracle.jdbc.driver.oracledriver jdbc: oracle: delgado: @hostname: numero de puerto: dataBASEnamedB2 com.ibm.db2.jdbc.net.db2driver Número/Databasenamesybase com.sybase.jdbc.Sybdriver JDBC: Sybase: TDS: Nombre de host: Número de puerto/DataBASEname
Todas las piezas resaltadas en formato URL son estáticos, y solo las partes restantes deben cambiarse de acuerdo con la configuración de la base de datos.
Cree un objeto de conexión: use el nombre de usuario y la contraseña de la URL de la base de datos:
Las siguientes tres formas de Drivermanager.getConnection () se utilizan para crear un objeto de conexión. La forma más común de getConnection () requiere pasar una URL de base de datos, nombre de usuario y contraseña:
El valor del nombre de datos para la base de datos de URL: suponiendo que está utilizando el controlador delgado de Oracle, debe especificar un host: puerto.
Supongamos que hay una dirección TCP/IP host 192.0.0.1 y el nombre de host y Oracle Listener se configuran en el puerto 1521, el nombre de la base de datos es EMP, y luego la URL completa de la base de datos es:
JDBC: Oracle: Thin: @amrood: 1521: EMP
Ahora, se debe llamar al nombre de usuario y contraseña apropiados y getConnection () para obtener un objeto de conexión como se muestra a continuación:
String url = "jdbc: oracle: delgado: @amrood: 1521: emp"; string user = "username"; string pass = "contraseña" conexión conn = drivermanager.getConnection (url, user, pass);
Use solo una URL de la base de datos:
La segunda forma de Drivermanager.getConnection () solo requiere una URL de la base de datos:
Drivermanager.getConnection (url de cadena);
Sin embargo, en este caso, la URL de la base de datos, incluido el nombre de usuario y la contraseña, tiene el siguiente formulario general:
jdbc: oracle: controlador: nombre de usuario/contraseña@base de datos
Entonces, la conexión anterior se puede crear de la siguiente manera:
String url = "jdbc: oracle: delgado: nombre de usuario/contraseña@amrood: 1521: emp"; conexión conn = drivermanager.getConnection (url);
Use la URL de la base de datos y un objeto Propiedades:
La tercera forma de drivermanager.getConnection () requiere una URL de la base de datos y un objeto de propiedades:
Drivermanager.getConnection (url de cadena, información de propiedades);
Objeto de propiedades, guarda un conjunto de pares de valor clave de palabras clave. Se usa para llamar al método getconnection () cuando el atributo del controlador se pasa al controlador.
Para hacer la misma conexión realizada a través del ejemplo anterior, use el siguiente código:
import java.util.*; string url = "jdbc: oracle: Thin: @amrood: 1521: emp"; propiedades info = new Properties (); info.put ("user", "username"); info.put ("contraseña", "contraseña"); conexión conn = drivermanager.getConnection (url, info); Cerrar la conexión JDBC:
Al final del programa JDBC, requiere explícitamente que todas las conexiones a la base de datos se cierren para finalizar cada sesión de base de datos. Sin embargo, si olvida, el recolector de basura Java cierra la conexión y borra los objetos obsoletos.
Confiar en la recolección de basura, especialmente en la programación de bases de datos, es un hábito de programación muy pobre. Siempre debe estar en el hábito de cerrar el método Close () asociado con el objeto de conexión.
Para garantizar que la conexión esté cerrada, se puede ejecutar finalmente en bloque en el código. Finalmente, los bloques se ejecutarán, ya sea o no.
Para cerrar la conexión abierta anteriormente, el método Close () debe llamarse de la siguiente manera:
conn.close ();
Cierre explícitamente conexiones a DBMS para ahorrar recursos.
Cree una aplicación JDBC:
Hay seis pasos involucrados en la construcción de una aplicación JDBC:
Código de muestra:
Este ejemplo se puede usar como plantilla cuando necesita construir una aplicación JDBC.
Este código de muestra está escrito en función del entorno y la instalación de la base de datos en el capítulo anterior.
Copie el siguiente ejemplo FirstExample.java, compile y ejecute lo siguiente:
// Paso 1. Importe el Nombre del controlador de paquetes requerido Java.sql.*; Public class FirstExample {// JDBC Nombre del controlador y base de datos URL estática Cadena final JDBC_DRIVER = "com.mysql.jdbc.driver"; cadena final estática db_url = "jdbc: mysql: // localhost/emp"; // credenciales de base de datos static final cadena user = "UserName"; static final string pass = "contraseña"; public static void main (string [] args) {Connection conn = null; Instrucción stmt = null; Pruebe {// Paso 2: Registre JDBC Driver Class.forname ("com.mysql.jdbc.driver"); // Paso 3: abra un sistema de conexión.out.println ("Conectarse a la base de datos ..."); conn = drivermanager.getConnection (db_url, usuario, pase); // Paso 4: ejecute una consulta System.out.println ("Crear declaración ..."); stmt = conn.createStatement (); Cadena sql; sql = "Seleccionar ID, primero, último, edad de los empleados"; ResultSet rs = stmt.executeQuery (sql); // Paso 5: Extraiga datos del conjunto de resultados while (rs.next ()) {// recuperar por columna nombre int id = rs.getInt ("id"); int age = rs.getInt ("edad"); Cadena primero = rs.getString ("primero"); Cadena last = rs.getString ("último"); // Muestra valores System.out.print ("Id:" + id); System.out.print (", edad:" + edad); System.out.print (", primero:" + primero); System.out.println (", último:" + Último); } // Paso 6: entorno de limpieza rs.close (); stmt.close (); conn.close (); } catch (sqlexception se) {// manejar errores para jdbc se.printstackTrace (); } catch (excepción e) {// manejar errores para class.forname E.PrintStackTrace (); } Finalmente {// Finalmente bloqueado para cerrar los recursos, intente {if (stmt! = null) stmt.close (); } catch (sqlexception se2) {} // nada que podamos hacer intentar {if (conn! = null) conn.close (); } catch (Sqlexception SE) {SE.PrintStackTrace (); } // fin finalmente intente} // finalizar prueba system.out.println ("¡Adiós!"); } // end main} // end firstExampleAhora compilemos el ejemplo anterior de la siguiente manera:
C:> Javac FirstExample.java
Al ejecutar FirstExample, produce los siguientes resultados:
C:> Java Firstexample
Conexión a la base de datos ... Creación de declaración ... ID: 100, Edad: 18, Primero: Zara, último: Aliid: 101, Edad: 25, primero: Mahnaz, último: Fatmaid: 102, edad: 30, primero: Zaid, Last: Khanid: 103, Edad: 28, primero: Sumit, Last: Mittal