- Conectar y desconectar de la BBDD
- Crear y borrar tablas
- Insertar, actualizar y borrar registros
- Lanzar diferentes consultas
- Commit y rollback de transacciones
- Uso de PreparedStatement
En el pom.xml de nuestro proyecto deberemos incluir la dependencia:
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.15.1</version>
</dependency>
El código sería:
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestSQLite {
private static final String URL = "jdbc:sqlite:test.db";
public static void main(String[] args) throws SQLException {
final Connection conexion = DriverManager.getConnection(URL);
final DatabaseMetaData metadatos = conexion.getMetaData();
System.out.println("------------------------------------------------------------");
System.out.println("Conectados al motor de BBDD: " + metadatos.getDriverName());
System.out.println("DriverVersion: " + metadatos.getDriverVersion());
System.out.println("DatabaseProductVersion: " + metadatos.getDatabaseProductVersion());
System.out.println("JDBCMajorVersion: " + metadatos.getJDBCMajorVersion());
String sql = "DROP TABLE IF EXISTS CLIENTE;";
Statement stmt = conexion.createStatement();
stmt.execute(sql);
System.out.println("------------------------------------------------------------");
System.out.println("Borrada la tabla CLIENTE");
sql = "CREATE TABLE IF NOT EXISTS CLIENTE (ID integer PRIMARY KEY, NOMBRE text NOT NULL, DIRECCION text NOT NULL, PRIORIDAD integer NOT NULL);";
stmt = conexion.createStatement();
stmt.execute(sql);
System.out.println("------------------------------------------------------------");
System.out.println("Creada la tabla CLIENTE");
conexion.setAutoCommit(false);
sql = "INSERT INTO CLIENTE(NOMBRE,DIRECCION,PRIORIDAD) VALUES(?,?,?);";
PreparedStatement pstmt = conexion.prepareStatement(sql);
pstmt.setString(1, "cliente1");
pstmt.setString(2, "direccion1");
pstmt.setString(3, "1");
pstmt.executeUpdate();
pstmt.setString(1, "cliente2");
pstmt.setString(2, "direccion2");
pstmt.setString(3, "1");
pstmt.executeUpdate();
pstmt.setString(1, "cliente3");
pstmt.setString(2, "direccion3");
pstmt.setString(3, "2");
pstmt.executeUpdate();
conexion.commit();
System.out.println("------------------------------------------------------------");
System.out.println("Insertados 3 registros en tabla CLIENTE");
sql = "SELECT count(*) as NUMREG FROM CLIENTE";
ResultSet rs = stmt.executeQuery(sql);
System.out.println("------------------------------------------------------------");
System.out.println("Encontrados " + rs.getInt("NUMREG") + " registros en tabla CLIENTE");
sql = "SELECT count(*) as NUMREG FROM CLIENTE WHERE NOMBRE ='cliente1'";
rs = stmt.executeQuery(sql);
System.out.println("------------------------------------------------------------");
System.out.println("Encontrados " + rs.getInt("NUMREG") + " registros en tabla CLIENTE con NOMBRE ='cliente1'");
sql = "SELECT count(*) as NUMREG FROM CLIENTE WHERE NOMBRE LIKE 'cliente%'";
rs = stmt.executeQuery(sql);
System.out.println("------------------------------------------------------------");
System.out.println("Encontrados " + rs.getInt("NUMREG") + " registros en tabla CLIENTE con NOMBRE like 'cliente%'");
sql = "SELECT * FROM CLIENTE WHERE PRIORIDAD=1";
rs = stmt.executeQuery(sql);
System.out.println("------------------------------------------------------------");
System.out.println("Encontrados los siguientes registros en tabla CLIENTE con PRIORIDAD=1");
System.out.println("ID NOMBRE DIRECCION PRIORIDAD");
while (rs.next()) {
System.out.println(rs.getInt("ID") + " " + rs.getString("NOMBRE") + " " + rs.getString("DIRECCION") + " " + rs.getInt("PRIORIDAD"));
}
sql = "UPDATE CLIENTE SET PRIORIDAD=2 WHERE PRIORIDAD=1";
int numRecAct = stmt.executeUpdate(sql);
conexion.commit();
System.out.println("------------------------------------------------------------");
System.out.println("Actualizados "+numRecAct+" registros de PRIORIDAD=1 a PRIORIDAD=2");
System.out.println("ID NOMBRE DIRECCION PRIORIDAD");
sql = "SELECT * FROM CLIENTE";
rs = stmt.executeQuery(sql);
System.out.println("------------------------------------------------------------");
System.out.println("Encontrados los siguientes registros en tabla CLIENTE");
System.out.println("ID NOMBRE DIRECCION PRIORIDAD");
while (rs.next()) {
System.out.println(rs.getInt("ID") + " " + rs.getString("NOMBRE") + " " + rs.getString("DIRECCION") + " " + rs.getInt("PRIORIDAD"));
}
sql = "DELETE FROM CLIENTE WHERE NOMBRE='cliente1'";
numRecAct = stmt.executeUpdate(sql);
System.out.println("------------------------------------------------------------");
System.out.println("Borrados los registros con NOMBRE='cliente1'");
sql = "SELECT * FROM CLIENTE";
rs = stmt.executeQuery(sql);
System.out.println("------------------------------------------------------------");
System.out.println("Encontrados los siguientes registros en tabla CLIENTE");
System.out.println("ID NOMBRE DIRECCION PRIORIDAD");
while (rs.next()) {
System.out.println(rs.getInt("ID") + " " + rs.getString("NOMBRE") + " " + rs.getString("DIRECCION") + " " + rs.getInt("PRIORIDAD"));
}
sql = "DELETE FROM CLIENTE";
numRecAct = stmt.executeUpdate(sql);
conexion.rollback();
System.out.println("------------------------------------------------------------");
System.out.println("Intento cancelado de borrado completo de la tabla CLIENTE");
sql = "SELECT * FROM CLIENTE";
rs = stmt.executeQuery(sql);
System.out.println("------------------------------------------------------------");
System.out.println("Encontrados los siguientes registros en tabla CLIENTE");
System.out.println("ID NOMBRE DIRECCION PRIORIDAD");
while (rs.next()) {
System.out.println(rs.getInt("ID") + " " + rs.getString("NOMBRE") + " " + rs.getString("DIRECCION") + " " + rs.getInt("PRIORIDAD"));
}
conexion.close();
}
}
Un saludo
No hay comentarios:
Publicar un comentario