Clase Java MySQL ByN
Clase Java MySQL ByN
JVM
Cerrar conexin
Otra sentencia
0 1
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
// 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
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:
12 13
14 15
16 17
3
Generar el archivo JAR de Generar el archivo JAR de
un proyecto en Eclipse un proyecto en Eclipse (cont.)
18 19
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