Top Banner
Aprenda en N Diapositivas (Parte 1) Por: Domínguez Geniz Amalio Javier < [email protected] [email protected] [email protected] > http://ajdgeniz.wordpress.com Tecnológico de Estudios Superiores de Chalco 16/05/2010 1 Geniz v. 1.0 Java and all java-based trademarks are trademarks of Oracle Corporation in the U.S.A., other countries or both. Copyright 2010. Domínguez Geniz Amalio Javier
15

Teoria Mysql Java

Aug 27, 2014

Download

Documents

chepen1978
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Teoria Mysql Java

Aprenda en N

Diapositivas (Parte 1) Por:

Domínguez Geniz Amalio Javier < [email protected]

[email protected] [email protected] >

http://ajdgeniz.wordpress.com

Tecnológico de Estudios Superiores de Chalco

16/05/2010 1 Geniz v. 1.0

Java and all java-based trademarks are trademarks of Oracle Corporation in the U.S.A., other countries or both.

Copyright 2010. Domínguez Geniz Amalio Javier

Page 2: Teoria Mysql Java

16/05/2010 2 Geniz v. 1.0

1. ¿Que es JDBC?

JDBC es Acrónimo de Java DataBase Conectivity, es una API estándar de Java que nos permite el Acceso a bases de datos relacionales como MySQL, Postgres, SQL Server, Oracle; Acceso a bases de datos relacionales embebidas o empotradas como: Firebird, SQLite, HSQLDB, etc. En Java SE 6 tenemos JDBC 4. Cada servidor de base de datos tiene un driver JDBC que cuenta con las interfaces especificadas en JDBC; es decir, cada manejador de base de datos tiene un driver especifico que generalmente viene en un archivo JAR y este es en la mayoría de los casos suministrado por terceros.

Page 3: Teoria Mysql Java

16/05/2010 3 Geniz v. 1.0

2. JDBC API

Como se menciono anteriormente JDBC es una API (Aplication Programming Interface) que encontramos en el paquete de java: java.sql, el cual contiene algunos objetos y métodos como: • DriverManager, Connection, ResultSet, DatabaseMetaData,

ResultSetMetaData, PreparedStatement, CallableStatement, etc. Otras funciones de JDBC Avanzado las podemos encontrar en javax.sql, por ejemplo: • DataSource para realizar un pool de conexiones.

Page 4: Teoria Mysql Java

16/05/2010 4 Geniz v. 1.0

3. URL de la base de datos

La URL o Dirección de la base de datos es una cadena de texto que nos ayuda a conectarnos directamente a la base de datos, las URL’s deben de tener los siguientes datos: un nombre de servidor, un puerto, un protocolo, en algunas ocasiones la ubicación física de la base de datos, por ejemplo: URL MySQL: jdbc:mysql://servidor:puerto/Nombrebasedatos Jdbc:mysql://localhost:3306/information_schema URL Oracle: jdbc:oracle:thin:@NombreMaquina:Puerto:NombreBasedeDatos jdbc:oracle:thin:@localhost:1521:system URL HSQLDB(Modo Standalone): jdbc:hsqldb:file:UbicaciondelArchivo jdbc:hsqldb:file:C:/MiBase/Sample

Page 5: Teoria Mysql Java

16/05/2010 5 Geniz v. 1.0

4. Creando una Conexión JDBC

Ahora que ya conocemos los conceptos básicos de JDBC a manera de ejemplo crearemos una clase que nos permita realizar la conexión y obviamente ejecutar consultas, explicare cada una de los objetos implicados, métodos y excepciones.

4.1 Importando la clase java.sql

Para empezar este ejemplo debemos primeramente la clase java.sql, que nos permitira utilizar los objetos de esta librería, no es necesario importarla en un principio ya que podemos importarla al momento de definir los objetos: Import java.sql.*;

Page 6: Teoria Mysql Java

16/05/2010 6 Geniz v. 1.0

4.2 Cargando el Driver Ahora crearemos una clase java y un método estático llamado Conexion (Recuerde que java es case sensitive; es decir, distingue entre mayúsculas y minúsculas): public class JDBC {

public static void Conexion{ //Registramos el driver a través de: Class.forName(<NombreDriverr>), el nombre del driver varia en funcion de la base de datos utilizada por ejemplo, mysql: com.mysql.jdbc.Driver, Derby: org.apache.derby.jdbc.ClientDrive , HSQLDB: org.hsqldb.jdbcDriver,etc. //Protegemos la excepción con un bloque try y utilizando ClassNotFoundException //El driver deberá estar cargado en la classpath.

try {Class.forName("com.mysql.jdbc.Driver"); }catch (ClassNotFoundException e) { System.out.println(«Error debido a: " + e); }

Page 7: Teoria Mysql Java

16/05/2010 7 Geniz v. 1.0

4.3 El Objeto Connection

El objeto Connection parte de la librería java.sql es el encargado de realizar al conexión a través del objeto DriverManager y su método getConnection el cual recibe como parámetros: URL, Usuario y Contraseña. Tambien contiene metodos para cerrar la conexión, habilitar las consultas para el objeto Statement, etc.

java.sql.DriverManager • getConnection(String url, String usuario, String password) throws SQLException java.sql.Connection • Statement createStatement() throws SQLException • void close() throws SQLException • void setAutoCommit(boolean b) throws SQLException • void commit() throws SQLException • void rollback() throws SQLException

Page 8: Teoria Mysql Java

16/05/2010 8 Geniz v. 1.0

Código para realizar la conexión: //Protegemos el codigo, utilizamos la excepción del tipo SQLException try { //Declaramos el objeto Connection Connection conexion = null; //Creamos la conexión con la URL, usuario y password Conexión=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/MyDB", “usuario"," password"); /*Finamente atrapamos la excepción , esta generalmente ocurrirá si la conexión no se puede establecer*/ } catch(SQLException e) { System.out.println(" Error al intentar conectarse" + e); }

Page 9: Teoria Mysql Java

16/05/2010 9 Geniz v. 1.0

4.4 El Objeto Statement

Una vez realizada la conexión será necesario crear un objeto Statement, el cual nos permitirá la ejecución de consultas SQL, este objeto será creado a partir de connection, puede usar el mismo statement para ejecutar N consultas:

• java.sql.Statement – ResultSet executeQuery(string sql) – int executeUpdate(String sql) • Ejemplo: Statement statement = conexion.createStatement();

Page 10: Teoria Mysql Java

16/05/2010 10 Geniz v. 1.0

4.5 Statement: executeQuery & executeUpdate

Ahora que el objeto statement esta listo para ejecutar consultas, mencinare que tenemos dos metodos q nos permiten realizarlo: 1) executeQuey: Permite ejecutar consultas con el comando SELECT 2) executeUpdate: Permite realizar consultas con los comando UPDATE y DELETE.

//Almacenaremos los datos en un ResultSet executeQuery (SELECT) • ResultSet rs = statement.executeQuery(“SELECT * FROM tabla"); //Retornara el numero de registros modificados executeUpdate(UPDATE/DELETE) • int numero= statement.executeUpdate(“UPDATED tabla SET nombre = ‘Geniz' WHERE id = 12345");

Page 11: Teoria Mysql Java

16/05/2010 11 Geniz v. 1.0

4.4 El Objeto ResultSet

ResultSet también parte de java.sql, se encargará de almacenar los datos obtenidos de la ejecución de una consulta SQL, a través de este, podemos iterar entre nuestros registros. Cabe mencionar que este objeto es de tipo booleano y los datos almacenados se cargaran por medio de la consulta ejecutada en el objeto Statement.

java.sql.ResultSet boolean next() getInt(int Numerocolumna) getString(String Nombrecolumna) getXXX(int o String Columna) void close() Este iterador es posicionado a la primera fila en el indice cero Debemos utilizar el metodo next() para desplazarnos al siguiente registro.

getXXX es metodo que corresponde con cada objeto de la biblioteca java.sql.Types

Page 12: Teoria Mysql Java

16/05/2010 12 Geniz v. 1.0

4.4 El Objeto ResultSet (Ejemplo) //Datos cargados previamente ResultSet rs = statement.executeQuery(“SELECT * FROM tabla"); //Como podrá darse cuenta utilizando un while y con el metodo next() iteramos entre los datos, este bucle se ejecuta cada vez que next(tipo boleano) regresa un valor true, de lo contrario el ciclo terminara indicando que se ha llegado hasta el ultimo registro. while (rs.next()){ // Incorrecto String value0 = rs.getString(0); // Correcto String value1 = rs.getString(1); int value2 = rs.getInt(2); int value3 = rs.getInt(“ADDR_LN1"); }

Page 13: Teoria Mysql Java

16/05/2010 13 Geniz v. 1.0

4.5 Metadatos

Para finalizar esta primera parte concluiremos con un poco de metadatos, un Metadatos son información sobre los datos, en este caso información sobre los objetos de nuestra base de datos y sobre las consultas, para ello utilizaremos ResultSetMetaData & DatabaseMetaData. Que son objetos que utilizan Connection y Resultset:

ResultSetMetaData rsMeta = rs.getMetaData(); DatabaseMetaData dbmetadata = conexion.getMetaData();

Page 14: Teoria Mysql Java

16/05/2010 14 Geniz v. 1.0

4.5 Metadatos (Ejemplo)

ResultSetMetaData rsmd = rs.getMetaData(); Column = rsmd.getColumnCount(); //Extraemos el Num de Columnas for (int i =1 ; i <= Column ; i++){ //Extraemos el nombre System.out.println(“Nombre: " + rsmd.getColumnName(i)) //Extraemos el Tipo de Dato System.out.println(“Tipo: " + rsmd.getColumnType(i)); //Extraemos el Tamaño del dato(Columna) System.out.println(" Tamaño: " + rsmd.getColumnDisplaySize(i) ); }

Objeto ResultSet cargado de datos a través de Statement

Page 15: Teoria Mysql Java

16/05/2010 15 Geniz v. 1.0

Fin de la parte 1, en la parte 2 veremos los objetos y métodos avanzados de javax.sql y recuerden que si

tienen dudas me pueden escribir en: http://ajdgeniz.wordpress.com