Tecnología

Inicio

JDBC de MySQL Tutoriales

El API Java Database Connectivity (JDBC o) es un conjunto de clases estándar diseñados para proporcionar una sola interfaz unificada para conectar a todas las principales soluciones de bases de datos. bases de datos compatibles con JDBC se encuentra MySQL, Oracle, PostgreSQL, DB2 y Microsoft SQL Server. En este artículo se va a utilizar el software de base de datos de código abierto, MySQL, para ilustrar los principios de JDBC.

Descargar y enlace hasta el controlador JDBC de MySQL

JDBC requiere un controlador para cada tipo de base de datos se conectará a, y la producción y el mantenimiento de ese conductor es responsabilidad de los desarrolladores del software de base de datos. En el caso de MySQL, el piloto oficial de JDBC se llama MySQL :: Connector / J, y se puede obtener libremente desde la página web de MySQL. El controlador a un archivo JAR, y este archivo debe estar en la ruta de clases de Java. La mayor parte de Java IDE de manejar esta situación de forma automática para usted si se agrega el archivo de controlador como una biblioteca externa.

Todos los comandos necesarios para interactuar con el JDBC deben estar disponibles mediante la importación java.sql. * En la parte superior de su archivo de clase.

Registrar el controlador

Esto no requiere que envíe un formulario de registro a Sun. Esta es decirle qué controlador Java base de datos que se van a utilizar con el JDBC para las siguientes consultas. Se registra el conductor con el siguiente comando:

Conductor d = (Driver) Class.forName ( "com.mysql.jdbc.Driver"). NewInstance ()
IR

El contenido del nombre del conductor (com.mysql.jdbc.Driver) se aplica sólo a MySQL. La cadena precisa necesaria para otros controladores de base (como PostgreSQL) será diferente.

Si recibe un java.lang.ClassNotFoundException, esto significa más probable es que el controlador no está en la ruta de clase.

establecer la conexión

Se establecen conexiones con el siguiente comando:

Conexión conn = DriverManager.getConnection (URL, nombre de usuario, contraseña);

Si la base de datos está en la misma máquina que el cliente Java para acceder a él, a continuación, "localhost" funcionará como una dirección en la mayoría de los casos. Si el número de puerto para la base de datos no es el predeterminado para ese paquete de base de datos, entonces se puede añadir a la URL con dos puntos.

Una adición importante es el identificador de URL. Esto va a cambiar para diferentes servidores de bases de datos. No obstante, para MySQL, lo siguiente sería válida:
String url = "jdbc: mysql: // localhost: 8080"
IR

En caso de una conexión falla por cualquier razón, se lanzará una excepción de SQL, y contendrá un mensaje de error con más información que se puede imprimir en System.err para la depuración.

Tiempos de espera de base de datos

Es importante recordar que, a partir de la creación de la conexión, existe una conexión activa entre el cliente y el servidor. Sin embargo, muchas bases de datos tienen requisitos muy estrictos de tiempo de espera. Es importante que una conexión no se establecerá hasta consultas están listos. En lugar de establecer una conexión y luego esperar a la entrada del usuario para saber qué consultas a correr, es mejor establecer una conexión de prueba, desconecte y vuelva a conectar una vez que las consultas están disponibles.

Ejecutar consulta y buscar los resultados

Para emitir una consulta, debe crear una declaración utilizando una conexión a la base de datos activa.

Declaración s = conn.createStatement ()
IR
s.executeQuery ( "SELECT * FROM" + nombreTabla)
IR

Para obtener los resultados, se puede ejecutar de inmediato:

ResultSet rs = s.getResultSet ();

ResultSets

Una cosa importante a saber sobre los conjuntos de resultados es que se extraen los datos desde el servidor de una fila a la vez. El comando anterior, solamente inicializa un objeto ResultSet y obtiene algunos metadatos acerca de que los objetos (nombres más importante de columna y tipos). En realidad, no recuperar ningún dato. Los datos deben ser extraídos de un conjunto de resultados y se almacenan en algún otro lugar antes de que se cierre la conexión, por lo general con un bucle que será algo similar:

ListaEnlazada datos = new LinkedList ()
IR
mientras que (rs.next ()) {
data.add (rs.getString (1)); // Recuperar todos los datos de la primera columna
}

Cerrar las conexiones

La mayoría de las veces, el conductor se encargará de sí mismo conexiones de cierre. Sin embargo, puede ayudar a prevenir problemas en el futuro si se cierra siempre de forma explícita el conjunto de resultados, estado de cuentas y conexiones cuando haya terminado con ellos.

rs.close ()
IR
s.close ()
IR
conn.Close ();