0% encontró este documento útil (0 votos)
28 vistas4 páginas

Clase Java MySQL ByN

El documento describe la conexión entre Java y MySQL utilizando JDBC, incluyendo el ciclo de ejecución, las clases principales como DriverManager, Connection, Statement y ResultSet.

Cargado por

Gabs VG
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
28 vistas4 páginas

Clase Java MySQL ByN

El documento describe la conexión entre Java y MySQL utilizando JDBC, incluyendo el ciclo de ejecución, las clases principales como DriverManager, Connection, Statement y ResultSet.

Cargado por

Gabs VG
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

Java y MySQL Ciclo de ejecucin

JDBC: Java DataBase Connectivity


Establecer conexin a
Cargar Driver JDBC
la base de datos
Cliente Servidor
Ejecutar sentencia
Aplicacin Java
Consulta
MySQL
Conexin cliente-servidor Actualizacin
Driver JDBC MySQL Armar SQL
Armar SQL
Crear sentencia
El driver implementa
las interfaces del Crear sentencia
Java Runtime paquete JDBC estndar. Ejecutar
Base de Datos Ejecutar
Libreras JDBC Iterar sobre el resultado

JVM
Cerrar conexin
Otra sentencia
0 1

Clase DriverManager (Paquete java.sql) Clase Connection (Paquete java.sql)

DriverManager: clase esttica (no requiere instanciacin de objetos) que administra los
drivers jdbc disponibles para iniciar conexiones. Connection: interfaz para implementar una sesin cliente-servidor con una base de datos.

Connection getConnection(String url): intenta iniciar una conexin a una base de Statement createStatement(): crea una nueva sentencia para ejecutar cdigo SQL en
datos segn los parmetros especificados en el url. Generalmente el string de conexin forma directa en el servidor a traves de la conexin.
tiene el siguiente formato:
jdbc:<driver>:<propiedades de la conexin> PreparedStatement prepareStatement(String sql): crea una sentencia preparada
Para MySQL: con una estructura predeterminada dada por parmetros, para luego enviar los datos
jdbc:mysql://<servidor>:<puerto>/<base_datos>?<parametros> efectivos.
Por ejemplo:
jdbc:mysql://localhost:3306/batallas?user=barco&password=pwbarco boolean isValid(int timeout): verifica que la conexin est abierta y disponible para
ejecutar una operacin. Es necesaria para determinar si la conexin de red aun
Connection getConnection(String url, String usuario, String clave): idem al anterior permanece activa desde la ejecucin del ltimo SQL.
pero por compatibilidad y seguridad, el usuario y la clave de acceso, son parmetros
individuales. close(): cierra la conexin y libera los recursos utilizados.

setLoginTimeout(int segundos): configura la cantidad de segundos de espera para setAutoCommit(boolean autoCommit), commit(), rollback(): utilizados para el
intentar establecer la prxima conexin a una base de datos. manejo de transacciones en la conexin actual.

2 3

Conexin JDBC a MySQL Clase Statement (Paquete java.sql)

// Se carga y registra el driver JDBC de MySQL (JDK 1.5 o anterior) Statement: se utiliza para ejecutar una sentencia SQL en base a un string esttico, ya sea
try un comando o una consulta.
{
boolean execute(String sql): ejecuta cualquier tipo de SQL. Si es una consulta se debe
Class.forName("com.mysql.jdbc.Driver").newInstance();
recuperar el resultado mediante el mtodo ResultSet getResultSet();
}
catch (Exception ex) {} int executeUpdate(String sql): slo para comandos de actualizacin de datos (insert,
delete, update) o configuracin dinmica de la sesin (transacciones, concurrencia, etc).
// Intento de conexin a una base de datos
String servidor = "localhost:3306"; ResultSet executeQuery(String sql): slo para consultas que retornan un resultado en
String baseDatos = "batallas"; filas o registros.
String usuario = "admin_batallas";
String clave = "pwbatallas"; addBatch(String sql), int[] executeBatch(), clearBatch(): permiten ejecutar una
String url = "jdbc:mysql://" + servidor + "/" + baseDatos; secuencia de comandos enviados en un lote.

java.sql.Connection cnx; void setQueryTimeout(int seconds): impone un lmite de espera para la ejecucin de la
try sentencia.
{
cnx = java.sql.DriverManager.getConnection(url, usuario, clave); close(): cierra la sentencia liberando los recursos utilizados.
}
catch (java.sql.SQLException ex) {}
4 5

1
Clase ResultSet (Paquete java.sql) Consultas SQL
ResultSet: contiene el conjunto resultado de una consulta SQL, estructurado en filas y
columnas, con el comportamiento de un iterador. try
{
boolean next(): avanza el ndice interno del iterador a la proxima fila. Retorna false si no hay // Se crea una sentencia jdbc para realizar la consulta
mas filas. java.sql.Statement stmt = cnx.createStatement();
String getString(int columnIndex), String getString(String columnLabel): permiten
// Se prepara el string SQL de la consulta
recuperar los valores de las columnas como un String, segn su posicin en la fila (la
primer columna es 1) o mediante su nombre respectivamente. String sql = "SELECT nombre_barco, id, capitan FROM barcos;

int getInt(...), long getLong(...), float getFloat(...), double getDouble(...), // Se ejecuta la sentencia y se recibe un resultado
boolean getBoolean(...), Date getDate(...), Timestamp getTimestamp(...), java.sql.ResultSet rs = stmt.executeQuery(sql);
Object getObject(...), etc...: una funcin para cada tipo de dato de las columnas.
// Se recorre el resultado
boolean wasNull(): verifica si el ltimo valor recuperado de una columna correponda al while (rs.next())
valor NULL de SQL. {
String nombreBarco = rs.getString("nombre_barco");
boolean previous(), boolean first(), boolean last(), boolean absolute(int row), boolean int id = rs.getInt("id");
relative(int rows): funciones para navegar en el conjunto resultado. String capitan = rs.getString("capitan");
}
ResultSetMetaData getMetaData(): para recuperar los meta-datos (cantidad de columnas, rs.close();
tipos, ) del conjunto resultado y de las columnas. stmt.close();
}
6 catch (java.sql.SQLException ex) {} 7

Actualizacin de datos Sentencias Preparadas


Se utilizan cuando una misma sentencia consulta o actualizacin debe ejecutarse
Comandos o sentencias de manipulacin de datos (insert,
repetidamente con la misma estructura pero distintos valores.
update, delete) que no retornan un resultado. Ms comunmente usado en inserciones de registros en masa.
try Acelera la ejecucin al evitar la interpretacin del SQL de manera individual. Una vez
{ preparada la sentencia en el servidor, slo se necesitan enviar los datos efectivos.
// Se crea una sentencia jdbc para realizar la consulta El mtodo puede interpretarse como una pre-compilacin de las sentencias para un
java.sql.Statement stmt = cnx.createStatement(); posterior uso repetitivo. No slo se ahorran ciclos de cpu en el servidor, sino tambin ancho
// Se prepara el string SQL de la insercin de banda para la trasmisin de comandos y datos.
String sql = "INSERT INTO barcos (nombre_barco, id, capitan) " +
"VALUES ('Bismark', 22, 'Ernst Lindeman')"; String sql = "INSERT INTO barcos (nombre_barco, id, capitan) VALUES (?, ?, ?)";
// Se ejecuta la insercin // Se crea un sentencia preparada
stmt.execute(sql); java.sql.PreparedStatement stmt = cnx.prepareStatement(sql);
// Se retornan los recursos utilizados cerrando la sentencia // Se ligan los parmetros efectivos
stmt.close(); stmt.setString(1, "Bismark");
} stmt.setInt(2, 22);
catch (java.sql.SQLException ex) stmt.setString(3, "Ernst Lindeman");
{ // Se ejecuta la insercin
System.out.println("Mensaje: " + ex.getMessage()); stmt.executeUpdate();
System.out.println("Cdigo: " + ex.getErrorCode()); // se cierra la sentencia
System.out.println("SQLState: " + ex.getSQLState()); stmt.close();
}
8 9

Clase ResultSetMetaData (Paquete java.sql) Clase JTable (paquete javax.swing.table)

Permite mostrar graficamente tablas con datos, permitiendo opcionalmente al usuario


editar los datos.
ResultSetMetaData: permite obtener los tipos y propiedades de las columnas de un
conjunto resultado (ResultSet):

int getColumnCount(): cantidad de columnas en el resultado.

String getColumnLabel(int column), String getColumnName(int column): recuperar


el nombre modificado o el nombre real de una columna respectivamente.

String getColumnClassName(int column): recuperar la clase de Java determinada


como predefinida para el tipo de dato de una columna.

int getColumnType(int column), String getColumnTypeName(int column): recuperar Cada tabla JTable usa un objeto TableModel para manejar y almacenar los datos.
el tipo de dato SQL estndar y SQL especfico de una columna respectivamente.
Si no se especifica ningun modelo de tabla, JTable utiliza por defecto el modelo
int isNullable(int column), boolean isAutoIncrement(int column): propiedades DefaultTableModel que almacena los datos como vector de vectores.
particulares de una columna.
Para crear un modelo de tabla se debe implementar la interface TableModel. Generalmente se
boolean isSearchable(int column): determina si es posible ejecutar un filtro en el implementa extendiendo la clase DefaultTableModel o AbstractTableModel.
WHERE de una consulta sobre la columna indicada.
Clase DBTable (paquete quick.dbtable) Esta construido sobre JTable ( comparte muchos
mtodos y propiedades) y provee funciones especficas para bases de datos.
10 11
(Ver ejemplos de su uso en proyecto Batallas)

2
Manejo de Fechas Importar el proyecto Batallas en Eclipse
Para convertir String a java.util.Date:

Date fecha = (new SimpleDateFormat("dd/MM/yyyy")).parse("31/12/2009");

Para convertir java.util.Date a String:

String fechaStr = (new SimpleDateFormat("dd/MM/yyyy")).format(fecha);

Para convertir java.util.Date a String para SQL:

String fechaStrSQL = (new SimpleDateFormat("yyyy-MM-dd")).format(fecha);

Para convertir java.util.Date a java.sql.Date de JDBC:

java.sql.Date retorno = java.sql.Date.valueOf(


(new SimpleDateFormat("yyyy-MM-dd")).format(fecha));

(Mas funciones ver fechas.java en proyecto Batallas)

12 13

Instalacin del Driver JDBC Seleccin de la librera externa


de MySQL en Eclipse

14 15

Seleccin de la librera externa: Seleccin de la librera externa:


JDBC MySQL connector quicktable (DBTable)

16 17

3
Generar el archivo JAR de Generar el archivo JAR de
un proyecto en Eclipse un proyecto en Eclipse (cont.)

18 19

Generar el archivo JAR de Referencias


un proyecto en Eclipse (cont.) Driver JDBC de MySQL: http://dev.mysql.com/downloads/connector/j/

Swing / JTable:
http://java.sun.com/docs/books/tutorial/uiswing
http://download.oracle.com/javase/tutorial/uiswing/components/table.html

Quick.DBTable:
http://quicktablejava.appspot.com/home.html
https://java.net/projects/quicktable/downloads

Eclipse: http://www.eclipse.org/downloads
Window builder: http://www.eclipse.org/windowbuilder/download.php
JDK 7 SE: http://java.sun.com/javase/downloads/index.jsp
Java API:
http://java.sun.com/javase/7/docs
http://java.sun.com/javase/7/docs/technotes/guides/jdbc
20 21

También podría gustarte