You are on page 1of 3

Centro Regional Universitario de Veraguas

Facultad de Informática, Electrónica y Comunicación


Inf212-Programación Orientada a Objetos

Semana #12
Java y MySql

JDBC
JDBC es un API (conjunto de clases e interfaces) de java, del paquete java.sql (use
import java.sql.*;) diseñado para facilitar el manejo de bases de datos, permitiendo a las
aplicaciones manejar las siguientes actividades:
 Conexión a una base de datos
 Enviar consultas y actualizar bases de datos Experimente la
 Recuperar y procesar los resultados recibidos de la instalación del
base de datos

Para poder usar Mysql se necesita el controlador de JDBC (Connector/J) que debe
colocarse en la carpeta C:\j2sdk1.4.2_07\jre\lib\ext y puede bajarse de
http://www.mysql.com/products/connector/j/, conviene además actualizar la variable
CLASSPATH para garantizar que java pueda acceder al controlador.

Conexión con Mysql


Para hacer efectiva la comunicación con la base de datos es necesario cargar el
controlador JDBC desde el programa Java. Esto lo hacemos mediante el método forName()
de la clase Class, de la siguiente forma: Class.forName ("com.mysql.jdbc.Driver"). Es
importante contar con una instancia del controlador, por lo que utilizamos:
Class.forName ("com.mysql.jdbc.Driver").newInstance ();

Referencias:
Una aplicación puede
utilizar la clase
DriverManager para obtener  http://java.sun.com/docs/books/tutorial/jdbc/
un objeto de tipo  http://www.kitebird.com/articles/jdbc.html
Connection, con una base  http://www.mysql-hispano.org/page.php?id=24&pag=4
de datos. La conexión se 4.html
especifica siguiendo la sintaxis de los URL:
jdbc:subprotocolo//servidor:puerto/base de datos

En nuestro ejemplo queda así:


String url = “jdbc:mysql://serfiec:3306/facultad”;
Connection conn = DriverManager.getConnection (url, userName, password);

Con el objeto de tipo Connection, se pueden crear sentencias(statements),


ejecutables. Cada una de estas sentencias puede devolver cero o más resultados como
objetos de tipo ResultSet. Es importante destacar que Connection y ResulSet
representan la conexión a la base de datos y el conjunto de resultados de una consulta,
respectivamente. El siguiente segmento muestra el uso de Statement y ResulSet.

Statement s = conn.createStatement ();


s.executeQuery ("SELECT nombre,apellido,edad FROM estu");
ResultSet rs = s.getResultSet ();

Diego Santimateo G. 1
Centro Regional Universitario de Veraguas
Facultad de Informática, Electrónica y Comunicación
Inf212-Programación Orientada a Objetos

Clases e Interfaces involucradas en una aplicación Java con ODBC.

Fuente:
http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte21/cap21-4.html

Clase/Interface Descripción

Driver Permite conectarse a una base de datos: cada gestor de base de datos
requiere un controlador distinto

DriverManager Permite gestionar todos los controladores instalados en el sistema

DriverPropertyInfo Proporciona diversa información acerca de un controlador

Connection Representa una conexión con una base de datos. Una aplicación puede
tener más de una conexión a más de una base de datos

DatabaseMetadata Proporciona información acerca de una Base de Datos, como las tablas que
contiene, etc.

Statement Permite ejecutar sentencias SQL sin parámetros

ResultSet Contiene las filas o registros obtenidos al ejecutar un SELECT

ResultSetMetadata Permite obtener información sobre un ResultSet, como el número de


columnas, sus nombres, etc.

Diego Santimateo G. 2
Centro Regional Universitario de Veraguas
Facultad de Informática, Electrónica y Comunicación
Inf212-Programación Orientada a Objetos

Ejemplo completo
Describa las clases y objetos utilizados para la conexión con Mysql y determine la
instrucción SQL que se utiliza. ¿Cómo se maneja la consulta a la tabla estu de la base de
datos facultad?.

import java.sql.*;

public class PruebaRemotaMysql


{
public static void main (String[] args)
{
Connection conn = null;

try
{
String userName = "FIEC-01";
String password = "";
// se indica el servidor, puerto y la base de datos facultad de mysql
String url = "jdbc:mysql://serfiec:3306/facultad";

Class.forName ("com.mysql.jdbc.Driver").newInstance ();


conn = DriverManager.getConnection (url, userName, password);
System.out.println ("Coneccion Database OKKK!!!");
try
{
//Uso de la tabla estu de la base de datos facultad
Statement s = conn.createStatement ();
s.executeQuery ("SELECT nombre,apellido,edad FROM estu");
ResultSet rs = s.getResultSet ();
int count = 0;
System.out.println ("Datos de la Tabla \n");
while (rs.next ())
{
int codigoVal = rs.getInt ("edad");
String nombreVal = rs.getString ("nombre");
String apeVal = rs.getString ("apellido");

System.out.println ("\n Nombre = " + nombreVal


+ "\n Apellido = " + apeVal
+ "\n Codigo = " + codigoVal);

++count;
}
rs.close ();
s.close ();
System.out.println ("\n Registros recuperados...."+ count);
}
catch (Exception e)
{
System.err.println ("Problemas con acceso a la tabla"+e);
}
}
catch (Exception e)
{
System.err.println ("No puede conectarse al Servidor Mysql");
}
finally
{
if (conn != null)
{
try
{
conn.close ();
System.out.println ("\n !!!!!Cerrada la coneccion a Mysql");
}
catch (Exception e) { /* sin mensajes de error */ }
}
}
}
}

Diego Santimateo G. 3

You might also like