Brevemente, JDBC utiliza drivers de terceros para poder conectarse a los motores, con esto se logra una gran potencia puesto que se puede acceder a cualquier motor, es decir podriamos pensar en tener una aplicaci?n que se ejecute en Access y luego migrarla a MySQL sin mayor inconveniente mas que el de reemplazar el driver que se utiliza. Salvando claro, el tema de copiar las tablas de un motor a otro.
Les dejo un breve ejemplo de como se haria una consulta a una base de datos MySQL, con un script sql para crear una base y un luego el ejemplo en java:
Pedidos.sql
CREATE DATABASE pedidos;
USE pedidos;
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for pedidos
-- ----------------------------
DROP TABLE IF EXISTS `pedidos`;
CREATE TABLE `pedidos` (
`pedido_id` int(11) NOT NULL auto_increment,
`sector_id` int(11) default NULL,
`casino_id` int(11) default NULL,
`estado_id` int(11) default NULL,
`proveedor` varchar(240) default NULL,
`usuario_id` int(11) default NULL,
`fecha` date NOT NULL,
`hora` time NOT NULL,
PRIMARY KEY (`pedido_id`)
) ENGINE=MyISAM AUTO_INCREMENT=49 DEFAULT CHARSET=latin1;
INSERT INTO `pedidos` VALUES ('47', '4', '1', '2', 'Proveedor 1', '0', '2009-06-11', '16:52:59');
INSERT INTO `pedidos` VALUES ('48', '4', '1', '2', 'Proveedor 2', '0', '2009-06-11', '16:53:52');
Es necesario que descarguen el driver de mysql para que lo puedan ejecutar.
Ahora les dejo el codigo del ejemplo java, que les muestra como conectarse con la base y realizar una consulta:
import java.sql.*;
import java.util.*;
public class EjemploBase {
public EjemploBase() {
/*
* Asumimos que el MySQL esta en la misma maquina,
* y que el usuario es root y no tiene clave
*/
conectar("pedidos","root","","localhost");
consultar();
}
private Connection con;
public void conectar(String db,String dbUser,String dbPass,String dbHost) {
try {
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://"+dbHost+"/"+db,dbUser,dbPass);
} catch(SQLException e) {
System.err.println("SQL Exception: "+e.getMessage());
} catch(Exception e) {
System.err.println("Exception: "+e.getMessage());
}
}
public void consultar() {
try {
PreparedStatement pstmt = con.prepareStatement("SELECT * FROM pedidos");
ResultSet rs = pstmt.executeQuery();
ResultSetMetaData rsmd = pstmt.getMetaData();
int columnas = rsmd.getColumnCount();
System.out.println("Cantidad de columnas: "+columnas);
while(rs.next()) {
for(int i=1;i < columnas;i++) {
System.out.print(rs.getString(i)+" | ");
}
System.out.println("");
}
rs.close();
pstmt.close();
} catch(SQLException e) {
while (e != null) {
System.err.println("Message: "+ e.getMessage ());
System.err.println("SQLState: "+ e.getSQLState ());
System.err.println("ErrorCode: "+ e.getErrorCode ());
e = e.getNextException();
System.err.println("");
}
}
}
public static void main(String[] args) {
EjemploBase base = new EjemploBase();
}
}
No hay comentarios:
Publicar un comentario