Transacciones• Transacción = conjunto de comandos que deben  completarse satisfactoriamente o fallar  conjuntamente• Si un...
Visión general de JDBC•   API estándar para el acceso a bases de datos•   Similar a ODBC•   API definida desde JDK 1.1•   ...
Arquitectura de JDBCAplicación       JDBC          Driver  • El código Java llama a las clases JDBC  • JDBC carga un contr...
Controladores JDBC (Fig.)          Tipo I                         Driver                      ODBC         “Bridge”       ...
JDBC Class UsageDriverManager                Driver                         Connection                                    ...
JDBC URLsjdbc:subprotocol:source• Cada controlador tiene su propio  subprotocolo• Cada subprotocolo tiene su propia sintax...
DriverManagerConnection getConnection  (String url, String user,  String password)• Conecta a una URL JDBC determinada  me...
import java.sql.*;import java.sql.Connection;                              Obtener una conexiónimport java.sql.DriverManag...
Métodos de la clase ConectionStatement createStatement()  – Devuelve un nuevo objeto StatementPreparedStatement  prepareSt...
Statement• Un objeto “Statement” es utilizado para  ejecutar una sentencia SQL estática y obtener  los resultados producid...
Statement MethodsResultSet executeQuery(String)   – Ejecuta una sentencia SQL y devuelve un único ResultSetint executeUpda...
ResultSet• Un ResultSet ofrece acceso a una tabla de datos  generada por la ejecución de un Statement.• Solamente se puede...
Métodos de ResultSet• boolean next()   – Mueve el cursor al siguiente registro   – La primera llamada a next() selecciona ...
Métodos de ResultSet• Type getType(int columnIndex)  – Devuelve el campo del tipo especificado (Type)  – Los campos se ind...
Métodos ResultSet•   String getString(int columnIndex)•   boolean getBoolean(int columnIndex)•   byte getByte(int columnIn...
Métodos ResultSet•   String getString(String columnName)•   boolean getBoolean(String columnName)•   byte getByte(String c...
Próxima SlideShare
Cargando en…5
×

Conexion bd en java y api necesaria

1.956 visualizaciones

Publicado el

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
1.956
En SlideShare
0
De insertados
0
Número de insertados
29
Acciones
Compartido
0
Descargas
53
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Conexion bd en java y api necesaria

  1. 1. Transacciones• Transacción = conjunto de comandos que deben completarse satisfactoriamente o fallar conjuntamente• Si un comando falla, el sistema debe volver atrás todas las acciones anteriores• No permite dejar la B.D. en un estado intermedio de la transacción. O se completa todo, o falla todo.
  2. 2. Visión general de JDBC• API estándar para el acceso a bases de datos• Similar a ODBC• API definida desde JDK 1.1• Controladores disponibles para el acceso a la mayoría de bases de datos
  3. 3. Arquitectura de JDBCAplicación JDBC Driver • El código Java llama a las clases JDBC • JDBC carga un controlador (driver) • El controlador conecta con una determinada base de datos • Se puede tener mas de un controlador -> más de una base de datos • Ideal: se puede acceder a distintas bases de datos sin cambiar el código de la aplicación
  4. 4. Controladores JDBC (Fig.) Tipo I Driver ODBC “Bridge” ODBC Tipo IIJDBC CLI (.lib) “Native” Tipo III Middleware “Middleware” Server Tipo IV “Pure”
  5. 5. JDBC Class UsageDriverManager Driver Connection Statement ResultSet
  6. 6. JDBC URLsjdbc:subprotocol:source• Cada controlador tiene su propio subprotocolo• Cada subprotocolo tiene su propia sintaxis para acceder al origen de datosjdbc:odbc:DataSource – P.e.. jdbc:odbc:Northwindjdbc:informix-sqli://host[:port]/database – P.e. jdbc:informix-sqli://dbserver:2650/dbconta MYSQL url= "jdbc:mysql://localhost:3306/cumpleanos";
  7. 7. DriverManagerConnection getConnection (String url, String user, String password)• Conecta a una URL JDBC determinada mediante el usuario y password suministrados• Lanza java.sql.SQLException• Devuelve un objeto del tipo Connection
  8. 8. import java.sql.*;import java.sql.Connection; Obtener una conexiónimport java.sql.DriverManager;public class Conexion{ private String driver= "com.mysql.jdbc.Driver"; // ojo aqui colocar el path del jdbc correspondiente a la conexion dependiendo de la configuracion del puerto donde corra el JDBC private String url= "jdbc:mysql://localhost:3306/db_session"; // ojo el login y pass son para entrar al motor de Base de Datos private String login= "root"; private String password= "admin"; // creamos un metodo de tipo Connection public Connection getConnection() { Connection cn= null; try{ Class.forName(driver).newInstance();//Obtenmos el driver de mysql cn= DriverManager.getConnection(url, login, password);//Conectamos a nuestra BD // preparamos a la aplicacion en caso de algun error en la consulta } catch(SQLException e) { System.out.println(e.toString()); cn= null; // preparamos a la aplicacion en caso de algun error } catch(Exception e) { System.out.println(e.toString()); cn= null; } return cn; }
  9. 9. Métodos de la clase ConectionStatement createStatement() – Devuelve un nuevo objeto StatementPreparedStatement prepareStatement(String sql) – Devuelve un nuevo objeto PreparedStatementCallableStatement prepareCall(String sql) – Devuelve un nuevo objeto CallableStatement• ¿Por qué existen todos estos tipos distintos de “statements”? Optimización.
  10. 10. Statement• Un objeto “Statement” es utilizado para ejecutar una sentencia SQL estática y obtener los resultados producidos por la misma
  11. 11. Statement MethodsResultSet executeQuery(String) – Ejecuta una sentencia SQL y devuelve un único ResultSetint executeUpdate(String) – Ejecuta una sentencia SQL del tipo INSERT, UPDATE o DELETE. Devuelve el número de registros modificados.boolean execute(String) – Ejecuta una sentencia SQL que puede devolver múltiples resultados• ¿Por qué todos estos tipos distintos de métodos? Optimización.
  12. 12. ResultSet• Un ResultSet ofrece acceso a una tabla de datos generada por la ejecución de un Statement.• Solamente se puede abrir a la vez un ResultSet por Statement.• Los registros de la tabla se obtienen en secuencia• Un ResultSet mantiene un cursor que apunta al registro de datos actual.• El método next mueve el cursor al siguiente registro. – No se puede volver hacia atrás
  13. 13. Métodos de ResultSet• boolean next() – Mueve el cursor al siguiente registro – La primera llamada a next() selecciona el primer registro – Devuelve false si no hay más registros• void close() – Cierra el objeto ResultSet – Permite reutilizar el objeto Statement que creó el ResultSet – Se llama de forma automática por la mayoría de métodos de la clase Statement
  14. 14. Métodos de ResultSet• Type getType(int columnIndex) – Devuelve el campo del tipo especificado (Type) – Los campos se indexan comenzando por 1 (no por 0)• Type getType(String columnName) – Igual que el anterior pero usando el nombre de la columna como parámetro – Menos eficiente• int findColumn(String columnName) – Devuelve el índice de la columna que se pasa como parámetro
  15. 15. Métodos ResultSet• String getString(int columnIndex)• boolean getBoolean(int columnIndex)• byte getByte(int columnIndex)• short getShort(int columnIndex)• int getInt(int columnIndex)• long getLong(int columnIndex)• float getFloat(int columnIndex)• double getDouble(int columnIndex)• Date getDate(int columnIndex)• Time getTime(int columnIndex)• Timestamp getTimestamp(int columnIndex)
  16. 16. Métodos ResultSet• String getString(String columnName)• boolean getBoolean(String columnName)• byte getByte(String columnName)• short getShort(String columnName)• int getInt(String columnName)• long getLong(String columnName)• float getFloat(String columnName)• double getDouble(String columnName)• Date getDate(String columnName)• Time getTime(String columnName)• Timestamp getTimestamp(String columnName)

×