Curso Basico JDBC PDF
Curso Basico JDBC PDF
Curso Basico JDBC PDF
www.profesorjava.com
Atte.
ISC Ral Oramas Bustillos.
[email protected]
JDBC | ISC Ral Oramas Bustillos, 2009 | 3
CONTENIDO
Modulo 01: Introduccin al JDBC.
Modulo 01
Introduccin al JDBC.
Introduccin.
Evolucin de JDBC.
Arquitectura del API JDBC.
Descripcin general del API JDBC.
Drivers JDBC.
Qu necesitamos para trabajar con JDBC?.
Conexin de la Base de Datos.
Conexin a JDBC.
Cargar el controlador JDBC.
Establecer una conexin JDBC.
TestConexion.java
Creacin de sentencias.
JDBC | ISC Ral Oramas Bustillos, 2009 | 7
Contenido.
Objetos Statement.
Sentencia executeUpdate().
Insertar.java
Sentencia executeQuery()
Consultar.java
Tipos de Datos y Conversiones.
ResultSetMetaData.
TestResultSetMetaData.java
DatabaseMetaData.
TestMetaData.java
API Driver
JDBC JDBC
Son drivers que usan un cliente Java puro (cliente JDBC) que se
comunica con un middleware server (servidor JDBC) usando un
protocolo independiente de la base de datos (TCP/IP).
Convierte las llamadas en un protocolo (por ejemplo TCP/IP) que
puede utilizarse para interactuar con la base de datos.
Cliente JDBC
Cdigo Driver
Java JDBC
TCP/IP
Servidor de Driver
acceso a bd Tipo 1/2
Servidor JDBC Protocolo especfico
del proveedor
JDBC | ISC Ral Oramas Bustillos, 2009 | 16
Driver Tipo 4: Native-Protocol Pure Java.
Cdigo Driver
Java JDBC
Cdigo Java 100%
DriverManager.getConnection Obtener la
2
(url,usr,pwd); conexin
conn.createStatement();
Crear el comando
conn.prepareStatement(sql); 3
SQL
conn.prepareCall(sql);
stmt.executeQuery(); Ejecutar el
4
stmt.executeUpdate(); comando SQL
stmt.close();
conn.close();
Liberar recursos 5
JDBC | ISC Ral Oramas Bustillos, 2009 | 19
Cargar el driver JDBC.
Class.forName("NombreDelDriver" );
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" );
jdbc:<subprotocolo>:<subnombre>
Connection conn;
String url = "jdbc:mysql://localhost/NombreBaseDatos";
conn = DriverManager.getConnection(url, "", "");
if (conn != null) {
System.out.println("Conexin a la bd " + url + "....ok!!");
conn.close();
}
} catch (ClassNotFoundException cnfe) {
System.out.println("Driver JDBC no encontrado"); Si se logra la
cnfe.printStackTrace(); conexin se
} catch (SQLException sqle) { despliega un
mensaje de
System.out.println("Error al conectarse a la BD");
usuario.
sqle.printStackTrace(); En caso
} catch (Exception e) { contrario
System.out.println("Error general"); lanza una
e.printStackTrace(); excepcin.
}
}
} 2/2
package cursojdbc;
import java.sql.*;
public class TestExecuteUpdate {
final static String bd = "MI_BIBLIOTECA";
final static String login = "root";
final static String password = "admin";
final static String url = "jdbc:mysql://localhost/" + bd;
Connection conn;
Statement stmt;
3 Jackie Barker
4 Paul Sanghera
5 Ivor Horntons
6 Todd M.Thomas
package cursojdbc;
import java.sql.*;
public class TestExecuteQuery {
final static String bd = "MI_BIBLIOTECA";
final static String login = "root";
final static String password = "admin";
final static String url = "jdbc:mysql://localhost/" + bd;
Connection conn;
Statement stmt;
1/2
DataBaseMetaData DriverPropertyInfo
ResultSetMetaData RowSetMetaData
ParameterMetaData
package cursojdbc;
import java.sql.*;
public class MetaData01 {
final static String bd = "MI_BIBLIOTECA";
final static String login = "root";
final static String password = "admin";
final static String url = "jdbc:mysql://localhost/" + bd;
Connection conn;
Statement stmt;
package cursojdbc;
import java.sql.*;
public class DBMetaData01 {
final static String bd = "MI_BIBLIOTECA";
final static String login = "root";
final static String password = "admin";
final static String url = "jdbc:mysql://localhost/" + bd;
Connection conn;
Statement stmt;
1/2
Modulo 02
Prctica de Laboratorio.
Curso Instructor
CursoId INT InstructorId INT
NombreCurso CHAR 20 NombreInstructor CHAR 60
Modulo 03
JDBC Avanzado.
Introduccin.
La clase PreparedStatement.
TestPreparedStatement.java
La clase CallableStatement.
Transacciones.
Niveles de aislamiento transaccional.
Excepciones JDBC.
PreparedStatement pstmt =
conexion.prepareStatement(SELECT * FROM Cliente
WHERE codigo = ?)
{? = call nombre_procedimiento[?,?,?]}
NOTA: No todos los drivers/BDs tienen que soportar todos los niveles de aislamiento. Por
lo regular soportan TRANSACTION_READ_COMMITED que es el nivel por defecto y
TRANSACTION_SERIALIZABLE.
catch(SQLException sqle) {
System.out.println(SQLException: + sqle.getMessage());
sqle.printStackTrace();
}
JDBC | ISC Ral Oramas Bustillos, 2009 | 64
Excepciones JDBC.
Object
Trata las excepciones que
Throwable
se producen al manipular
la BD
BatchUpdateException SQLWarning
Modulo 04
Prctica de Laboratorio.
Producto Proveedor
ProveedorId INT 4
ProductoId INT 4
NombreProveedor VARCHA 100
NombreProducto VARCHAR 200
R
PrecioProducto FLOAT 8
RegionProveedor CHAR 50
ColorProducto CHAR 10
DescripcionProveedor CHAR 250
Producto_Proveedor
ProductoId INT 4
ProveedorId INT 4
Cantidad INT 4
JDBC | ISC Ral Oramas Bustillos, 2009 | 68
Prctica de Laboratorio.
GRANT SELECT,INSERT,UPDATE,DELETE
ON AGENDA.* TO curso'@'localhost'
IDENTIFIED BY curso';
jdbc:<subprotocolo>:<subnombre>
jdbc:mysql://localhost/Agenda
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn =
DriverManager.getConnection(url,login,password);
conn.close();
} Cierra la conexin Crea la conexin
catch {
Si no se logra cargar el driver o sucede una
excepcin utilizando JDBC se lanza la
}
excepcin correspondiente
<<Interface>>
Statement
executeQuery
ResultSet Statements
getMoreResults commit,abort
execute
prepareStatement
getXXX PreparedStatement Connection
getConnection
Data types: Date, getXXX
Time, TimeStamp,
Numeric, Built-in
CallableStatement
Java types, etc. DriverManager
http://developers.sun.com/products/jdbc/drivers
Clic en
Next
Clic en
Finish
Estoy listo
para
programar!
Clic en
Databases
Clic
derecho
Clic
Clic en OK
Clic
derecho
Clic
Clic
derecho
Seleccionar la ruta
Clic
C:\Archivos de Programa\Sun\JavaDB\lib\derby.jar
Clic
Clic
Clic
Clic
Class Name: TestConexion
Asistente despus de
Clic
dar clic en el botn
Next>.
Una vez que damos clic en el botn Finish en la pantalla principal de la IDE nos
aparecer el editor de texto con la definicin de la clase TestConexion.
}
1 de 2
2 de 2