Download Cap6.2 TAP3501 - WordPress.com
Document related concepts
no text concepts found
Transcript
DuocUC Tópicos Avanzados de Programación (TAP3501) Ariel Alexis Fierro Sáez [email protected] Uso JDBC en Java Uso JDBC en aplicaciones java Class.forName("driver") Cargar/Registrar el driver JDBC DriverManager.getConnection ( url, usr, pwd) Obtener la conexión Retorna objeto tipo Conecction (con) con.createStatement(); con.prepareStatement(); con.prepareCall(); Crear el comando SQL Retorna objeto tipo Statement (stmt) stmt.executeQuery(); stmt.executeUpdate(); (create, alter, drop) DDL (insert, update, delete) DML stmt.close(); con.close(); Ejecutar el comando SQL Procesa los resultados. Liberar recursos • DML, DDL executeUpdate(); • select executeQuery() 1- Cargar Driver JDBC • Para conectarnos a una base de datos a través JDBC desde una aplicación java, lo primero que necesitamos es cargar el driver. • Sintaxis: Facilitado por el fabricante Class.forName("com.mysql.jdbc") • Llamando a Class.forName la aplicación java cargara el driver JDBC y entonces ya nos podemos conectar con la base de datos invocando el metodo DriverManager.getConnection. 2- Obtener la conexión • Una vez cargado el driver , utilizaremos el método getConnection parque define una URL la cual indicara la ubicación de la base de datos. usuario • Sintaxis: clave Connection con = DriverManager.getConnection(url, usr, psw) jdbc:<subprotocolo>:<subnombre> Es el protocolo Identifica el driver Dirección del servidor y el nombre de la base de datos 2- Obtener la conexión • Caso mysql String url = "jdbc:mysql://localhost/NombreBaseDatos"; String usr = "UsuarioBaseDatos"; String psw = "ClaveBaseDatos"; try { Connection con = DriverManager.getConnection(url,usr,psw); } catch (SQLException ex) { System.out.println(ex.getMessage()); } 3- Crear comandos SQL • Una vez creada la conexión a la base de datos, podemos crear sentencias SQL utilizando la interfaz Statement que nos provee métodos para realizar dichas tareas. • Sintaxis Statement stmt = con.createStatement (); 4- Ejecutar comandos SQL • Una vez creada la sentencia SQL necesario ejecutar a través de dos métodos: Menos sentencia SELECT ▫ executeUpdate DML + DDL (retorna nro. registros afectados) ▫ executeQuery SELECT (retorna objeto ResultSet con un conjunto de registros) 5- Procesar los resultados • Sintaxis caso sentencia SELECT String query = "select * from producto"; ResultSet rt = stmt.executeQuery(query); • Sintaxis caso DML+DDL String query = "update producto set descripcion=‘ Silla’ where id_prod=34"; Int rt = stmt.executeUpdate(query); 5- Procesar los resultados • El objeto del tipo ResultSet controla la recuperación de los registros de la consulta SELECT: • Para recorrer los registros recuperados utilizaremos los métodos next() y previus(), los cuales nos permitirán desplazarnos por el conjunto de tuplas. • Inicialmente el objeto rt se encuentra apuntando al primer registro, del conjunto de tuplas. 5- Procesar los resultados • Para acceder a cada columna de las tuplas podemos acceder de dos alternativas : rt.getString(nombre_columna) //según nombre columna rt.getString(1) //según posición columna • El acceso por posiciones es útil cuando: ▫ Acceso a una columna derivada, por ejemplo el promedio ▫ Cuando hay columnas con el mismo nombre (por un join) 5- Procesar los resultados • Sentencia ejemplo, recorrer un ResultSet: while (rt.next()) { System.out.println("Cod. Producto="+rt.getString("id_prod")); System.out.println(«Des. Producto="+rt.getString(" descripcion ")); } 6- Liberar recursos • Sentencia ejemplo, recorrer un ResultSet: while (rt.next()) { System.out.println("Cod. Producto="+rt.getString("id_prod")); System.out.println(«Des. Producto="+rt.getString(" descripcion ")); } Cargar algunos driver JDBC Referencias • JDBC http://www.javasamples.com/showtutorial.php?tutorialid=624 • Driver JDBC http://www.sql-workbench.net/manual/jdbcsetup.html • Driver oficiales JDBC http://devapp.sun.com/product/jdbc/drivers