PDF de programación - JDBC Conectividad de Java con bases de datos

Imágen de pdf JDBC Conectividad de Java con bases de datos

JDBC Conectividad de Java con bases de datosgráfica de visualizaciones

Publicado el 1 de Septiembre del 2018
413 visualizaciones desde el 1 de Septiembre del 2018
655,9 KB
24 paginas
Creado hace 7a (09/10/2012)
Conectividad de Java con bases de datos

-DYD'DWDEDVH&RQQHFWLYLW\

JDBC

JDBC

1

• ¿Qué es JDBC?

• Cuatro tipos de drivers JDBC

• Uso de JDBC
• Uso de JDBC

&RQW«

2

¿Qué es JDBC?

• JDBC es una interfaz que permite a un

programa java ejecutar instrucciones SQL
dentro de bases de datos relacionales.

– Las bases de datos deben seguir el estandar

ANSI SQL-92

JDBC en acción

SURJUDPD

-DYD

-'%&
-'%&

GULYHU

SDUD2UDFOH

GULYHU

SDUDP\VTO

MGEFRGEF

SXHQWH

GULYHU
RGEF

DB

DB

DB

3

4

Cuatro tipos de drivers JDBC

2'%&

2'%&
'ULYHU

&/, OLE
&/, OLE

0LGGOHZDUH

6HUYHU

-'%&
-'%&

7\SH,

³%ULGJH´

7\SH,,
³1DWLYH´

7\SH,,,

³0LGGOHZDUH´

7\SH,9
³3XUH´

Cuatro tipos de drivers JDBC (Cont…)

I. Puente JDBC-ODBC

– traduce Java al API de ODBC

&OLHQW
&OLHQW

6HUYHU
6HUYHU

BD

&OLHQW
-DYD

-'%& 2'%&

ODBC 3URWRFRO

ODBC
6HUYHU

%'

&RQWLQXHG

6

Cuatro tipos de drivers JDBC (Cont…)

II. Native API

- traduce Java al API de la base de datos

&OLHQW
&OLHQW

6HUYHU
6HUYHU

BD

&OLHQW
-DYD

-'%&

1DWLYH

$3,

Native 3URWRFRO

Native
6HUYHU

%'

7

Cuatro tipos de drivers JDBC (Cont…)

III. Middleware

- Invoca un servidor intermedio generalmente ubicado en el
mismo host de la base de datos. Utiliza un protocolo
estándar independiente de la base de datos.

&OLHQW

6HUYHU

BD

&OLHQW
-DYD

-'%&

Standard 3URWRFRO

middleware

6HUYHU

Native
6HUYHU

%'

8

Cuatro tipos de drivers JDBC (Cont…)

IV. Net Protocol

Genera el protocolo de comunicaciones de la base
de datos

&OLHQW
&OLHQW

6HUYHU
6HUYHU

BD

&OLHQW
-DYD

-'%&

Native 3URWRFRO

Native
6HUYHU

%'

9

Drivers JDBC

• Una lista de diversos drivers pueden ser encontrados

(freeware, shareware, and commercial) en:

http://developers.sun.com/product/jdbc/drivers

10

5'%06

0\64/

2UDFOH

'%

$FFHVV

Algunos Drivers JDBC

-'%&'ULYHU1DPH

'ULYHU1DPH

com.mysql.jdbc.Driver

'DWDEDVH85/IRUPDW

jdbc:mysql://hostname/databaseName

'ULYHU1DPH

oracle.jdbc.driver.OracleDriver

'DWDEDVH85/IRUPDW

jdbc:oracle:thin@hostname:portnumber:databaseName

'ULYHU1DPH

COM.ibm.db2.jdbc.net.DB2Driver

'DWDEDVH85/IRUPDW

jdbc:db2:hostname:portnumber/databaseName

'ULYHU1DPH

sun.jdbc.odbc.JdbcOdbcDriver

'DWDEDVH85/IRUPDW

jdbc:odbc:databaseName

Instalación del driver

El driver se presenta como un archivo jar, por ejemplo
para MySQL el driver se llama:

mysql-connector-java-5.1.9-bin.jar

El driver se instala en el directorio donde se tenga
instalado el JDK, dentro de la carpeta:

…/jre/lib/ext

11

12

Cargando el driver en Netbeans

Si ya instalaron el driver
en el JDK, dentro de la
carpeta:

…/jre/lib/ext
…/jre/lib/ext

Netbeans puede
accesarlo ya que cargará
todas las librerías del
JDK

Usando el driver incluido en Netbeans

Con el botón derecho en el folder “Libraries” seleccionar “Add Library” y después MySQL JDBC Driver

Proyecto con la
librería para
MySQL incluida

13

14

Secuencia JDBC

• Todos los programas JDBC hacen lo siguiente:

– 1) Cargan el driver JDBC

– 2) Especifican el nombre y ubicación de la base de

datos utilizada
datos utilizada

– 3) Se conectan a la base de datos creando un objeto

Connection

&RQWLQXHG

15

Secuencia JDBC (Cont…)

– 4) Crean un Statement object y ejecutan queries

SQL

– 5) Los resultados de un query se guardan en un
objeto de tipo ResultSet, allí se pueden consultar
objeto de tipo ResultSet, allí se pueden consultar

– 6) Cerrar (close) los objetos ResultSet, Statement y

Connection

16

Cargar el driver JDBC
(Antes de JDBC 4.0)

import java.sql.*;

Class.forName("com.mysql.jdbc.Driver")

Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );

El driver para ODBC viene incluido en la instalación básica de java.

El driver para MySQL se puede obtener bajando el archivo
mysql-connector-java-5.1.9-bin.jar

de la página: www.mysql.com/products/connector/j/

e instalandolo en la carpeta jre/lib/ext de la instalación de java.

17

Conectar

String url = "jdbc:odbc:Books";
String username = "anonymous";
String password = "guest";
connection = DriverManager.getConnection(url, username, password );

ODBC

String url = "jdbc:mysql://localhost:3306/mysql";
Connection con = DriverManager.getConnection(url,"root", "");
Connection con = DriverManager.getConnection(url,"root", "");

MySQL
MySQL

Cuando se invoca el método getConnection, el DriverManager
intenta localizar un driver apropiado entre los que se hayan
cargado previamente y los que se puedan cargar usando el mismo
classloader que la aplicación actual.

18

Algunos métodos de java.sql.Connection

0«WRGR
0«WRGR
0«WRGR
0«WRGR

2EMHWLYR
2EMHWLYR
2EMHWLYR
2EMHWLYR

6WDWHPHQWFUHDWH6WDWHPHQW
6WDWHPHQW
FUHDWH6WDWHPHQW
FUHDWH6WDWHPHQW
6WDWHPHQW
6WDWHPHQW
FUHDWH6WDWHPHQW

'DWDEDVH0HWD'DWD JHW0HWD'DWD

ERROHDQLV&ORVHG

YRLGFRPPLW

YRLGUROOEDFN

5HJUHVD XQREMHWR GHOWLSR VWDWHPHQWTXH VHU£
XWLOL]DGR SDUD HQYLDU 64/DODEDVHGHGDWRV

2EWLHQH XQREMHWR TXH FRQWLHQH LQIRUPDFLµQ VREUH
ODFRQILJXUDFLµQ GHODEDVHGHGDWRV

5HJUHVD YHUGDGHUR WUXH VL ODEDVHGHGDWRV HVW£
FHUUDGD
FHUUDGD

+DFH SHUPDQHQWHV WRGRV ORVFDPELRV KHFKRV
GHVSXHV GHO¼OWLPR FRPPLWUROOEDFN

'HVKDFH WRGRV ORVFDPELRV KHFKRV GHVSX«V GHO
¼OWLPR FRPPLWUROOEDFN

Algunos métodos de java.sql.Connection(Cont…)

0«WRGR
0«WRGR
0«WRGR
0«WRGR

2EMHWLYR
2EMHWLYR
2EMHWLYR
2EMHWLYR

YRLGVHW$XWR&RPPLW ERROHDQ\Q

5HVWDXUDTXLWD HOPRGR DXWRFRPPLWHVWH PRGR
HIHFW¼D XQFRPPLWDXWRP£WLFR GHVSX«V GHFDGD
FRPDQGR 64/(/YDORUSRU GHIDXOWGH
$XWR&RPPLW HV RQ

YRLGFORVH

&LHUUD ODFRQH[LµQ

19

20

Statement

• Un objeto de tipo Statement se obtiene invocando el método

FUHDWH6WDWHPHQW GH XQ REMHWR &RQQHFWLRQ.

• Permite enviar comandos SQL a la base de datos. Ejemplos:

Statement myStmt = connection.createStatement();

ResultSet myResult;

myResult=myStmt.executeQuery(“SELECT * FROM bikes;”);

Statement myStmt = connection.createStatement();

myStmt.executeUpdate(“UPDATE Authors SET firstName=‘Joe’

WHERE firstName=‘Tem’ ”);

Prepared Statement

Los Prepared Statements se utilizan para consultas que se
ejecutan muchas veces

El DBMS las compila una sola vez

En lugar de datos, se utiliza el signo de interrogación ‘?’ como
marcador. Los datos se agregan despues de la compilación.

Los marcadores ‘?’ deben ser sustituidos por datos concretos
antes de ejecutar losPrepared Statements.

21

22

Prepared Statement

String queryStr =

"SELECT * FROM Items " +
"WHERE Name = ? and Cost < ?";

PreparedStatement pstmt = con.prepareStatement(queryStr);

pstmt.setString(1, "shirt");
pstmt.setInt(2, 1000);

ResultSet rs = pstmt.executeQuery();

23

ResultSet

• Un objeto ResultSet es similar a un arreglo de dos dimensiones. Cada
llamada a next() apunta al siguiente registro en el result set.

• Se debe llamar al método next() antes de poder ver el primer registro, y el
método regresará el valor de false cuando ya no hay mas registros. Esta
propiedad se utiliza generalmente para controlar un while loop.
propiedad se utiliza generalmente para controlar un while loop.

• El ResultSet tiene métodos de acceso en lectura getInt(), getLong(),
getString() etc., para todos los tipos de datos java que equivalen a los tipos
SQL, se requiere especificar el nombre ó número de órden (empezando en
1, 2, 3, etc.) de la columna que se va a leer.

24

SQL

Java Type

Method

BIT

TINYINT

SMALLINT

INTEGER

BIGINT

REAL

FLOAT

DOUBLE

DECIMAL

NUMERIC
NUMERIC

CHAR

VARCHAR

boolean

getBoolean()

byte

short

int

long

float

double

double

getByte()

getShort()

getInt()

getLong()

getFloat()

getDouble()

getDouble()

java.math.BigDecimal

getBigDecimal()

java.sql.Numeric
java.sql.Numeric

getNumeric()
getNumeric()

String

String

getString()

getString()

LONGVARCHAR

InputStream

getAsciiStream()

getUnicodeStream()

BINARY

byte[]

getBytes()

LONGVARBINARY

InputStream

getBinaryStream()

DATE

TIME

java.sql.Date

java.sql.Time

getDate()

getTime()

TIMESTAMP

java.sql.Timestamp

getTimestamp()

ResultSetMetadata

Es un objeto que puede ser utilizado para obtener información
sobre los tipos de datos y propiedades de las columnas de un
objeto ResultSet.

ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM TABLE");

ResultSetMetaData rsmd = rs.getMetaData();

int numberOfColumns = rsmd.getColumnCount();

String name1 = rsmd.getColumnName(1);

25

26

Executing SQL Commands

Statement MyStmt = connection.createStatement();

int x = MyStmt.executeUpdate ("INSERT INTO Sells “ +

“VALUES ('Bar Of Foo', 'BudLite', 2.00)" );

REGRESA: el número de registros afectados si se hizo un INSERT,
REGRESA: el número de registros afectados si se hizo un INSERT,
UPDATE or DELETE, regresa 0 en caso de comandos SQL que no
regresan nada

ResultSet rs = MyStmt.executeQuery ("SELECT * FROM Sells");

27

Ejemplos JDBC

Statement MyStmt = con.createStatement();

MyStm.executeUpdate("CREATE TABLE Sells " + "(bar VARCHAR(40),
beer VARCHAR(40), price REAL)" );

Strings SQL usan
comillas simples ''

MyStm.executeUpdate("INSERT INTO Sells " +

"VALUES ('Bar Of Foo', 'BudLite', 2.00)" );

String sqlString = "CREATE TABLE Bars " +

"(name VARCHAR(40), address VARCHAR(80), license INT)" ;

MyStm.executeUpdate(sqlString);

Ponga especial atención al espacio en blanco que sigue después de
"INSERT INTO Sells " evita que este string se pegue a "VALUES".

28

Ejemplos JDBC

Statement stmt = con.createStatement();

String bar, beer ;

float price ;

ResultSet rs = stmt.executeQuery("SELECT * FROM Sells");
ResultSet rs = stmt.executeQuery("SELECT * FROM Sells");

while ( rs.next() ) {

bar = rs.getString("bar");

beer = rs.getString("beer");

price = rs.getFloat("price");

Mueve el cursor hacia el
próximo registro. El cursor
está posicionado inicialmente
antes del primer registro

System.out.println(bar + " sells " + beer + " for " + price + " Dollars.");

}

Registr
  • Links de descarga
http://lwp-l.com/pdf13324

Comentarios de: JDBC Conectividad de Java con bases de datos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad