Formas de crear una conexión
JDBC ofrece tres métodos para establecer una conexión mediante DriverManager.getConnection():
Método 1: parámetros separados
String url = "jdbc:mysql://localhost:3306/sample";
String user = "root";
String password = "pass";
Connection c = DriverManager.getConnection(url, user, password);
Método 2: credenciales en la URL
String url = "jdbc:mysql://localhost:3306/sample?user=root&password=pass";
Connection c = DriverManager.getConnection(url);
Método 3: objeto Properties
String url = "jdbc:mysql://localhost:3306/sample";
Properties prop = new Properties();
prop.setProperty("user", "root");
prop.setProperty("password", "pass");
Connection c = DriverManager.getConnection(url, prop);
Tipos de sentencias SQL

| Tipo | Descripción |
|---|---|
Statement |
SQL estático en tiempo de ejecución, no acepta parámetros |
PreparedStatement |
SQL precompilado, optimizado para ejecución repetida con parámetros |
CallableStatement |
Permite invocar procedimientos almacenados en la base de datos |
Statement
Statement stmt = conn.createStatement();
PreparedStatement
PreparedStatement ps = conn.prepareStatement("INSERT INTO Libros VALUES (?, ?, ?)");
CallableStatement
CallableStatement cs = conn.prepareCall("{call getEmpName (?, ?)}");
Métodos de ejecución
Los objetos Statement disponen de tres métodos de ejecución:
| Método | Uso | Retorna |
|---|---|---|
executeQuery() |
Sentencias SELECT |
ResultSet con los resultados |
executeUpdate() |
INSERT, UPDATE, DELETE |
int con el número de filas afectadas |
execute() |
Cualquier sentencia | boolean (genérico) |
Ejemplos avanzados
PreparedStatement con parámetros
Los parámetros se marcan con ? en el SQL y se asignan por posición (empezando en 1):
PreparedStatement ps = conn.prepareStatement(
"INSERT INTO Libros VALUES (?, ?, ?)");
ps.setInt(1, 23);
ps.setString(2, "Bambi");
ps.setInt(3, 45);
ps.executeUpdate();
CallableStatement con parámetros de salida
CallableStatement cstmt = conn.prepareCall("{call getEmpName (?, ?)}");
cstmt.setInt(1, 111111111);
cstmt.registerOutParameter(2, java.sql.Types.VARCHAR);
cstmt.execute();
String empName = cstmt.getString(2);
El método registerOutParameter() indica que el segundo parámetro es de salida y su tipo SQL. Tras execute() se recupera el valor con el método get correspondiente al tipo.