Conexiones a una base de datos
Cada objeto Connection
representa una conexión física con la base de datos.
Se pueden especificar más propiedades además del usuario y
la contraseña al crear una conexión.
Estas propiedades se pueden especificar:
- Codificadas en la URL (ver detalles de la base de datos)
- Usando métodos getConnection(…) sobrecargardos de la clase DriverManager.
Ejemplo 1
String url =
"jdbc:mysql://localhost:3306/sample";
String name =
"root";
String password =
"pass";
Connection c =
DriverManager.getConnection(url, user, password);
Ejemplo 2
String url =
"jdbc:mysql://localhost:3306/sample?user=root&password=pass";
Connection c =
DriverManager.getConnection(url);
Ejemplo 3
String url =
"jdbc:mysql://localhot:3306/sample";
Properties prop =
new Properties();
prop.setProperty("user",
"root");
prop.setProperty("password",
"pass");
Connection c = DriverManager.getConnection(url,
prop);Sentencias SQL
Con JDBC se pueden
usar diferentes tipos de Statement.
Statement.
SQL estático en tiempo de ejecución, no acepta parámetros
Statement stmt =
conn.createStatement();
PreparedStatement
Para ejecutar la misma sentencia muchas veces la “prepara”.
Acepta parámetros
PreparedStatement ps = conn.prepareStatement(...);
CallableStatement
Llamadas a procedimientos almacenados.
CallableStatement s = conn.prepareCall(...);
Uso de Statement
Tiene diferentes métodos para ejecutar una sentencia.
- executeUpdate(…). Se usa para sentencias INSERT, UPDATE, DELETE o sentencias DDL. Devuelve el número de filas afectadas por la sentencia.
- execute(…). Método genérico de ejecución de consultas. Puede devolver uno o más ResultSet y uno o más contadores de filas afectadas.
Uso de PreparedStatement
Los PreparedStatement se utilizan:
- Cuando se requieren parámetros.
- Cuando se ejecuta muchas veces la misma sentencia.
- La sentencia se prepara al crear el objeto.
- Puede llamarse varias veces a los métodos execute.
PreparedStatement ps
= conn.preparedStatement("INSERT INTO Libros VALUES (?, ?, ?)");
ps.setInt(1, 23);
ps.setString(2,
"Bambi");
ps.setInt(3, 45);
ps.executeUpdate();
Uso de CallableStatement
Permite hacer llamadas a los procedimientos almacenados de
la base de datos.
Permite parámetros de entrada IN (como el PreparedStatement), parámetros de
entrada – salida INOUT y parámetros de salida OUT.
CallableStatement
cstmt = conn.prepareCall("{call getEmpName (?, ?)}");
cstmt.setInt(1, 111111111);
cstmt.registerOutParameter(2,
java.sql.Types.VARCHAR);
cstmt.execute();
String empName =
cstmt.getString(2);
0 comments:
Publicar un comentario