El kit de desarrollo de Java incluye un paquete denominado Database Connectivity API Java, JDBC o para abreviar. Esto proporciona una única interfaz para interactuar con cualquier paquete de base de datos que proporciona un controlador JDBC . Soluciones de bases de datos más importantes, incluyendo MySQL , proporcionan un controlador JDBC ya sea en sus discos de instalación o de descarga gratuita desde su página web. El controlador JDBC de MySQL
El driver JDBC para MySQL se llama MySQL :: Connector /J , y es una aplicación muy completa de API JDBC. El conductor será un archivo JAR que debe ser ubicado en la ruta de clases Java. El más común de Java IDE , particularmente Eclipse y Netbeans , lo hará por usted , siempre se hace referencia el archivo del controlador como una biblioteca . Además , con el fin de utilizar los comandos de la API JDBC , deberá introducir el siguiente comando en la parte superior de cualquier clase que utilizar directamente el JDBC
import java.sql
* , . .
Configuración
Mientras que los intentos de JDBC para hacer uso de sus bases de datos en los programas Java lo más simple posible , hay una serie de pasos a seguir para configurar la conexión de base de datos. Dado que es posible escribir un programa que incluye varios controladores de base de datos , antes de conectarse a una base de datos debe informar a la API de controlador que se va a utilizar . Para ello, se ejecuta la siguiente : .
Class.forName ( " com.mysql.jdbc.Driver ") newInstance ();
Esto devolverá una instancia de la clase del controlador (que está incluido en java.sql ) , y usted puede guardar la referencia a esa instancia para su uso posterior , si quieres. Sin embargo , no es necesario en la mayoría de las circunstancias . Si recibe un error , esto significa más probable es que su ruta de clase no está configurado correctamente.
Creación de una conexión
La conexión de base de datos se debe realizar con una URL o una dirección IP . Si la base de datos se está ejecutando en la misma máquina que el programa Java, esto es fácil : La URL es localhost , y algo más : el protocolo ( o URL ) identificador. A un familiar para que la Web es " http://" . Para una base de datos JDBC MySQL, el identificador de protocolo correcto es " jdbc : mysql ://"
Conexión conn = DriverManager.getConnection ( "jdbc : mysql ://localhost " , nombre de usuario , contraseña ) . < Br >
Tratar con errores
Cualquier error relativo a una conexión, una declaración o un conjunto de resultados será del tipo SQLException . Para más detalles sobre el error específico , usted debe ponerse SQLException e imprimir el mensaje de error en la consola. Una fuente potencial de confusión es la velocidad a la que las conexiones de tiempo de espera. Hay un montón de tiempo para conectarse , ejecutar algunas consultas y obtener resultados, pero es casi seguro que no hay tiempo para esperar a que la entrada de usuario después de la conexión. Si tiene que esperar a que el usuario , por lo general es una mejor práctica para desconectar , recuperar la entrada del usuario y vuelva a conectarlo de nuevo para ejecutar las consultas .
Consultas y resultados
Hay dos clases principales para interactuar con la base de datos una vez conectado : la Declaración y el ResultSet
Declaración
s = conn.createStatement (); s.executeQuery ( "SELECT * FROM empleados "); ResultSet rs = s . . getResultSet ();
Declaración
simplemente envía la cadena SQL a la base de datos , por lo que tendrá que ser escrita en el dialecto nativo de SQL para la base de datos utilizada consultas. Una cualidad importante de un conjunto de resultados es que recupera los datos del servidor de una fila a la vez , y sólo recupera los datos cuando la fila se pidió . El código anterior no ha descargado ningún resultado todavía en el servidor.
Debido a que es imposible en la mayoría de los sistemas de saber el tamaño de un conjunto de resultados antes de que todos los resultados se han recuperado , lo mejor es almacenar un conjunto de resultados , al menos temporalmente , dentro de una estructura de datos que se pueden cambiar de tamaño de manera eficiente . Clase LinkedList de Java es ideal para este
resultados LinkedList = new LinkedList (); . While ( rs.next ()) { results.add ( rs.getString ( "nombre ")) ;}
< p> Y , siempre es una buena práctica para cerrar conexiones explícitamente en lugar de dejarlos timeout:
rs.close (); s.close (); conn.Close ();