connection en java
TRANSCRIPT
![Page 1: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/1.jpg)
![Page 2: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/2.jpg)
Modelos de acceso a BD
2
AplicaciónJavaJDBC
DBMS
Cliente
Servidor BD
ProtocoloBD
![Page 3: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/3.jpg)
Modelos de acceso a BD
3
AplicaciónJava
JDBC
DBMS
Navegador Web
Cliente (GUI)
Protocolo HTTP
ServidorBD
Servlets, JSPen servidor WEB
Protocolo BD
![Page 4: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/4.jpg)
Cargando el Driver Es necesario primero cargar una clase con el driver de
la base de datos (esto lo provee el vendedor de la DBMS)
Ejemplo:Class c = Class.forName(“com.informix.jdbc.IfxDriver"); Calss.forName(“com.novell.sql.LDAPDriver”); Class.forName("com.mysql.jdbc.Driver");
Esto es particular según la base de datos que se usa Luego hay que crear una instancia de la clase
c.newInstance();
4
![Page 5: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/5.jpg)
Estableciendo la Conexión
Un objeto “Connection” representa una conexión a una base de datos.
La clase “DriverManager” intenta ubicar el controlador que pueda conectarse a la base de datos representada en la URL.
5
Connection con = DriverManager.getConnection (url,login, password);
![Page 6: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/6.jpg)
Connection
6
![Page 7: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/7.jpg)
...Connection
7
![Page 8: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/8.jpg)
Ejemplo de Connection import java.sql.*;import com.mysql.jdbc.*;java.sql.Connection getConnection(String usr, String pass) {
url = "jdbc:mysql://localhost/test"; driver = "com.mysql.jdbc.Driver"; try { Class.forName(driver).newInstance(); con = DriverDriverManager.getConnection(url, usr,pass); return con; } catch(Exception e2) { System.err.println("Problems"); return null; }}
8
![Page 9: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/9.jpg)
La clase Statement y Connection Connection con = getConnection(…);
Statement stmt=
con.createStatement(); En este momento la statement existe
pero no tiene una sentencia SQL para ejecutar. Esta se puede pasar con los métodos executeUpdate(String), usada para crear/modificar tablas (no
hay resultados), típicamente para create, update, delete...
executeQuery(String) para hacer consultas, retornan resultados en un objeto de la clase ResultSet, típicamente para select
9
![Page 10: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/10.jpg)
Statement s=con.createStatement();s.executeUpdate(“...”); Crear tabla s.executeUpdate(“create libros(”+“ id char(20),” +“ titulo char(50),” +“ autor char(50,)” +“ editorial char(20),” +“ fecha char(8),” +“ primary key(id))”);
Crear y ejecutar comando
![Page 11: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/11.jpg)
El ResultSet
ResultSet rs = stmt.executeQuery(“select nombre where direccion like Santiago”);
while (rs.next()) {
String s = rs.getString(“nombre”);
int y = rs.getInt(“año”);
System.out.println(s+” “+y);
} ResultSet rs contiene una colección de filas con
los resultados de la pregunta. La instrucción next avanza un puntero que indica en qué fila estamos actualmente. Al principio está antes de la primera fila, por lo cual se hace necesario ejecutar un next() para situarse en la primera11
![Page 12: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/12.jpg)
ResultSet r=s.executeQuery( “select * from libros where titulo like ‘%Java%’”); String mayor=””; while(r.next()){ String fecha=r.getString(“fecha”); if(fecha.compareTo(mayor)>0) mayor=fecha; } //posicionar antes de primera fila r.beforeFirst(); //r.absolute(0); //recorrer libros de Java while(r.next()) if( r.getString(“fecha”).equals(mayor) ) System.out.println( r.getString(“id”)+r.getString(“titulo”));
Conclusiones
![Page 13: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/13.jpg)
Prepared Statements
13
![Page 14: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/14.jpg)
Prepared Statements: EjemploPreparedStatement updateSales;String updateString = "update COFFEES “+
"set SALES = ? where COF_NAME like ?";
updateSales = con.prepareStatement(updateString);int [] salesForWeek = {175, 150, 60, 155, 90};String [] coffees = {"Colombian", "French_Roast",
"Espresso", "Colombian_Decaf", "French_Roast_Decaf"};
int len = coffees.length;for(int i = 0; i < len; i++) { updateSales.setInt(1,salesForWeek[i]); updateSales.setString(2, coffees[i]); updateSales.executeUpdate();}
14
![Page 15: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/15.jpg)
Transacciones
15
![Page 16: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/16.jpg)
Transacciones
16
![Page 17: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/17.jpg)
Stored Procedures
17
![Page 18: Connection en Java](https://reader033.vdocuments.mx/reader033/viewer/2022050807/5874b10e1a28ab1b098b5c65/html5/thumbnails/18.jpg)
Un ejemploPara crear el Stored Procedure String crearSP = “create prodcedure SHOW_SUPPLIERS”+
“ as ”+
“select SUPPLIERS.SUP_NAME, COFFEES.COF_NAME”+
“from SUPPLIERS, COFFEES ”+
“where SUPPLIERS.SUP_ID = COFFEES.SUP_ID”
Statement stmt = con.CreateStatement();
stmt.executeQuery(createSP);
Para llamar el Stored ProcedureCallableStatement cs;
cs = con.prepareCall(“{call SHOW_SUPPLIERS}”);
ResultSet rs = cs.executeQuery();
18