Tutoriales Sqlite Java
Tutoriales Sqlite Java
Luego, ingrese el nombre del proyecto, su ubicación y la clase principal. Haga clic en el botón
Finalizar para crear el nuevo proyecto
Después de eso, para agregar el archivo SQLite JDBC Driver Jar al proyecto, haga clic con el botón
derecho del mouse en el nombre del proyecto y elija Propiedades.
Finalmente, seleccione Bibliotecas (1) en las Categorías de las ventanas de Propiedades del
Proyecto. A continuación, haga clic en el botón Agregar JAR / Carpeta (2), elija el archivo SQLite
JDBC JAR (3) y haga clic en el botón Abrir (4).
Sqlite_data_file_path es la ruta al archivo de base de datos SQLite, que es una ruta relativa o
absoluta de la siguiente manera:
jdbc: sqlite: sample.db
O
jdbc: sqlite: C: /sqlite/db/chinook.db
Para conectarse a una base de datos en memoria, use la siguiente cadena de conexión:
jdbc: sqlite :: memoria
Conéctese a una base de datos SQLite a través de JDBC
El siguiente programa se conecta a la base de datos de muestra de SQLite chinook.
package net.sqlitetutorial;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*
* @author sqlitetutorial.net
*/
public class SQLiteJDBCDriverConnection {
/**
* Connect to a sample database
*/
public static void connect() {
Connection conn = null;
try {
// db parameters
String url = "jdbc:sqlite:C:/sqlite/db/chinook.db";
// create a connection to the database
conn = DriverManager.getConnection(url);
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
connect();
}
}
Vamos a ejecutarlo.
La conexión a SQLite se ha establecido.
package net.sqlitetutorial;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
*
* @author sqlitetutorial.net
*/
public class Main {
/**
* Connect to a sample database
*
* @param fileName the database file name
*/
public static void createNewDatabase(String fileName) {
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
createNewDatabase("test.db");
}
Ahora ejecutamos el programa y vemos el siguiente resultado:
correr:
El nombre del controlador es SQLiteJDBC
Se ha creado una nueva base de datos.
CONSTRUIR ÉXITO (tiempo total: 0 segundos)
El test.db debe crearse en la carpeta c: \ sqlite \ db \. Puede verificarlo para asegurarse de que se
haya creado la base de datos.
SQLite Java: crea una nueva tabla
Resumen: en este tutorial, aprenderá a crear una nueva tabla desde el programa Java utilizando el
Controlador SQLite JDBC.
Para crear una nueva tabla en una base de datos específica, use los siguientes pasos:
1. Primero, prepare la instrucción CREATE TABLE.
2. Segundo, conéctese a la base de datos que contiene la tabla.
3. En tercer lugar, cree una nueva instancia de la clase Statement desde el objeto Connection.
4. Cuarto, ejecute la instrucción CREATE TABLE llamando al método executeUpdate () del objeto
Statement.
El siguiente programa ilustra los pasos para crear una tabla.
package net.sqlitetutorial;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
*
* @author sqlitetutorial.net
*/
public class Main {
/**
* Create a new table in the test database
*
*/
public static void createNewTable() {
// SQLite connection string
String url = "jdbc:sqlite:C://sqlite/db/tests.db";
}
In this tutorial, we have shown you how to create a new table in SQLite from a Java program using
the SQLite JDBC driver.
package net.sqlitetutorial;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
*
* @author sqlitetutorial.net
*/
public class InsertApp {
/**
* Connect to the test.db database
*
* @return the Connection object
*/
private Connection connect() {
// SQLite connection string
String url = "jdbc:sqlite:C://sqlite/db/test.db";
Connection conn = null;
try {
conn = DriverManager.getConnection(url);
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return conn;
}
/**
* Insert a new row into the warehouses table
*
* @param name
* @param capacity
*/
public void insert(String name, double capacity) {
String sql = "INSERT INTO warehouses(name,capacity) VALUES(?,?)";
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Después de ejecutar el programa, puede consultar la tabla de almacenes en la base de datos test.db
utilizando la siguiente instrucción SELECT:
SELECT
id,
name,
capacity
FROM
warehouses;
En este tutorial, ha aprendido cómo insertar datos en una tabla en la base de datos SQLite del
programa Java.
SQLite Java: seleccionar datos
Resumen: en este tutorial, aprenderá a consultar datos de una tabla utilizando Java JDBC.
Para consultar datos de una tabla, use los siguientes pasos:
1. Primero, cree un objeto Connection para conectarse a la base de datos SQLite.
2. Luego, cree una instancia de la clase Statement desde el objeto Connection.
3. Luego, cree una instancia de la clase ResultSet llamando al método executeQuery del
objeto Statement. El método executeQuery () acepta una instrucción SELECT.
4. Después de eso, recorra el conjunto de resultados utilizando el método next () del objeto
ResultSet.
5. Finalmente, use el método get * del objeto ResultSet, como getInt (), getString (),
getDouble (), etc., para obtener los datos en cada iteración.
El siguiente programa selecciona todas las filas de la tabla de almacenes.
package net.sqlitetutorial;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
*
* @author sqlitetutorial.net
*/
public class SelectApp {
/**
* Connect to the test.db database
* @return the Connection object
*/
private Connection connect() {
// SQLite connection string
String url = "jdbc:sqlite:C://sqlite/db/test.db";
Connection conn = null;
try {
conn = DriverManager.getConnection(url);
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return conn;
}
/**
* select all rows in the warehouses table
*/
public void selectAll(){
String sql = "SELECT id, name, capacity FROM warehouses";
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
SelectApp app = new SelectApp();
app.selectAll();
}
/**
* Get the warehouse whose capacity greater than a specified capacity
* @param capacity
*/
public void getCapacityGreaterThan(double capacity){
String sql = "SELECT id, name, capacity "
+ "FROM warehouses WHERE capacity > ?";
El siguiente es el resultado:
En este tutorial, ha aprendido cómo consultar datos de la tabla en la base de datos SQLite desde un
programa Java.
SQLite Java: actualización de datos
Resumen: este tutorial le muestra cómo actualizar datos en una tabla desde un programa Java
usando JDBC.
Para actualizar los datos existentes de una tabla, siga los pasos a continuación:
Primero, conéctese a la base de datos SQLite.
1. Luego, prepare la instrucción UPDATE. Para la instrucción UPDATE que usa parámetros,
usa el marcador de posición de interrogación (?) En las cláusulas SET y WHERE.
2. Luego, instale un objeto en la clase PreparedStatement llamando al método
prepareStatement () del objeto Connection.
3. Después de eso, establezca un valor para cada marcador de posición utilizando el método
set * del objeto PreparedStatement, por ejemplo, setString (), setInt (), etc.
4. Finalmente, ejecute la instrucción UPDATE llamando al método executeUpdate () del
objeto PreparedStatement.
El siguiente programa inserta tres filas en la tabla de almacenes que creamos en la tabla de creación
de tutoriales.
package net.sqlitetutorial;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
*
* @author sqlitetutorial.net
*/
public class UpdateApp {
/**
* Connect to the test.db database
*
* @return the Connection object
*/
private Connection connect() {
// SQLite connection string
String url = "jdbc:sqlite:C://sqlite/db/test.db";
Connection conn = null;
try {
conn = DriverManager.getConnection(url);
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return conn;
}
/**
* Update data of a warehouse specified by the id
*
* @param id
* @param name name of the warehouse
* @param capacity capacity of the warehouse
*/
public void update(int id, String name, double capacity) {
String sql = "UPDATE warehouses SET name = ? , "
+ "capacity = ? "
+ "WHERE id = ?";
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
SELECT
id,
name,
capacity
FROM
warehouses;
Segundo, ejecuta el programa UpdateApp.
En tercer lugar, consulte nuevamente los datos de la tabla de almacenes utilizando la misma
instrucción SELECT anterior.
En este tutorial, ha aprendido cómo actualizar los datos en la base de datos SQLite del programa
Java.
SQLite Java: eliminación de datos
Resumen: este tutorial lo guía por los pasos para eliminar datos en una tabla de un programa Java
utilizando JDBC.
Para eliminar una o más filas de una tabla de base de datos de un programa Java, utilice los
siguientes pasos:
1. Primero, cree una conexión de base de datos a la base de datos SQLite.
2. Luego, prepare la declaración DELETE. En caso de que quiera que la declaración tome
parámetros, use el marcador de posición de interrogación (?) Dentro de la declaración.
3. Luego, cree una nueva instancia de la clase PreparedStatement llamando al método
prepareStatement () del objeto Connection.
4. Después de eso, proporcione valores en lugar del marcador de posición del signo de
interrogación utilizando el método set * del objeto PreparedStatement, por ejemplo, setInt (),
setString (), etc.
5. Finalmente, ejecute la instrucción DELETE llamando al método executeUpdate () del
objeto PreparedStatement.
El siguiente programa elimina la fila con id 3 en la tabla de almacenes de la base de datos test.db
que creamos en el tutorial de la tabla de creación.
package net.sqlitetutorial;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
*
* @author sqlitetutorial.net
*/
public class DeleteApp {
/**
* Connect to the test.db database
*
* @return the Connection object
*/
private Connection connect() {
// SQLite connection string
String url = "jdbc:sqlite:C://sqlite/db/test.db";
Connection conn = null;
try {
conn = DriverManager.getConnection(url);
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return conn;
}
/**
* Delete a warehouse specified by the id
*
* @param id
*/
public void delete(int id) {
String sql = "DELETE FROM warehouses WHERE id = ?";
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
DeleteApp app = new DeleteApp();
// delete the row with id 3
app.delete(3);
}
}
Primero, usa la siguiente instrucción SELECT para verificar la tabla de almacenes antes de ejecutar
el programa de eliminación.
SELECT
id,
name,
capacity
FROM
warehouses;
En este tutorial, ha aprendido cómo eliminar datos en la base de datos SQLite del programa Java.
SQLite Java: transacción
Resumen: en este tutorial, le mostraremos cómo usar la transacción JDBC para administrar
transacciones en la base de datos SQLite.
Base de datos de muestra para demostración de transacción
Antes de comenzar con Java, crearemos dos nuevas tablas en la base de datos test.db.
1. La tabla de materiales almacena el maestro de materiales.
2. La tabla de inventario almacena la relación entre los almacenes y la tabla de materiales.
Además, la tabla de inventario tiene la columna qty que almacena los datos de stock.
Las siguientes declaraciones crean los materiales y las tablas de inventario.
Una transacción representa un conjunto de operaciones realizadas como una sola unidad de trabajo.
Significa que si cualquier operación en el conjunto falla, SQLite aborta otras operaciones y retrotrae
los datos a su estado inicial.
Una transacción tiene cuatro atributos principales, que se conocen como ACID.
La letra A representa la atomicidad. Significa que cada transacción debe ser todo o nada. Si
cualquier operación en la transacción falla, el estado de la base de datos permanece sin cambios.
La letra C significa coherencia. Se asegura de que cualquier transacción lleve los datos en la base de
datos de un estado válido a otro.
La letra I significa aislamiento. Esto es para el control de concurrencia. Asegura que la ejecución
concurrente de todas las transacciones produzca el mismo resultado que si se ejecutaran
secuencialmente.
La letra D representa durabilidad. Significa que cuando se compromete la transacción, permanecerá
intacta independientemente de cualquier error, como la pérdida de energía.
conn.commit ();
En caso de que ocurra una falla en el medio de la transacción, siempre puede usar el método
rollback () para deshacer la transacción.
conn.rollback ();
package net.sqlitetutorial;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
*
* @author sqlitetutorial.net
*/
public class TransactionApp {
/**
* Connect to the test.db database
*
* @return the Connection object
*/
private Connection connect() {
// SQLite connection string
String url = "jdbc:sqlite:C://sqlite/db/test.db";
Connection conn = null;
try {
conn = DriverManager.getConnection(url);
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return conn;
}
/**
* Create a new material and add initial quantity to the warehouse
*
* @param material
* @param warehouseId
* @param qty
*/
public void addInventory(String material, int warehouseId, double qty) {
// SQL for creating a new material
String sqlMaterial = "INSERT INTO materials(description) VALUES(?)";
ResultSet rs = null;
Connection conn = null;
PreparedStatement pstmt1 = null, pstmt2 = null;
try {
// connect to the database
conn = this.connect();
if(conn == null)
return;
pstmt1.setString(1, material);
int rowAffected = pstmt1.executeUpdate();
if (rowAffected != 1) {
conn.rollback();
}
// 2. insert the inventory
pstmt2 = conn.prepareStatement(sqlInventory);
pstmt2.setInt(1, warehouseId);
pstmt2.setInt(2, materialId);
pstmt2.setDouble(3, qty);
//
pstmt2.executeUpdate();
// commit work
conn.commit();
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
TransactionApp app = new TransactionApp();
app.addInventory("HP Laptop", 3, 100);
}
Para verificar el resultado, puede consultar los datos de los materiales y la tabla de inventario
utilizando la cláusula de unión interna de la siguiente manera:
SELECT
name,
description,
qty
FROM
materials
INNER JOIN inventory ON inventory.material_id = materials.id
INNER JOIN warehouses ON warehouses.id = inventory.warehouse_id;
En este tutorial, ha aprendido cómo administrar transacciones en SQLite usando Java JDBC.
SQLite Java: escribir y leer BLOB
Resumen: este tutorial muestra paso a paso cómo actualizar y seleccionar el BLOB de una base de
datos SQLite.
Para la demostración, utilizaremos la tabla de materiales que creamos en el tutorial de la tabla de
creación.
Supongamos que tenemos que almacenar una imagen para cada material en la tabla de materiales.
Para hacer esto, agregamos una columna cuyo tipo de datos es BLOB a la tabla de materiales.
La siguiente instrucción ALTER TABLE agrega la columna de imagen a la tabla de materiales.
ALTER TABLE materiales ADD COLUMN imagen blob;
Para actualizar la columna de imagen con los datos del archivo de imagen:
1. Primero, prepare una declaración ACTUALIZADA.
2. Luego, conéctese a la base de datos SQLite para obtener el objeto Connection.
3. Luego, cree un objeto PreparedStatement desde el objeto Connection.
4. Después de eso, proporcione los valores a los parámetros correspondientes utilizando los
métodos set * del objeto PreparedStatement.
5. Finalmente, ejecute la instrucción UPDATE llamando al método executeUpdate () del
objeto PreparedStatement.
Para conectarse a la base de datos test.db, use el método connect () de la siguiente manera:
/**
* Connect to the test.db database
*
* @return the Connection object
*/
private Connection connect() {
// SQLite connection string
String url = "jdbc:sqlite:C://sqlite/db/test.db";
Connection conn = null;
try {
conn = DriverManager.getConnection(url);
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return conn;
}
El siguiente método updatePicture () actualiza una imagen especificada por el nombre del archivo
para un material en particular.
/**
* Update picture for a specific material
*
* @param materialId
* @param filename
*/
public void updatePicture(int materialId, String filename) {
// update sql
String updateSQL = "UPDATE materials "
+ "SET picture = ? "
+ "WHERE id=?";
// set parameters
pstmt.setBytes(1, readFile(filename));
pstmt.setInt(2, materialId);
pstmt.executeUpdate();
System.out.println("Stored the file in the BLOB column.");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
package net.sqlitetutorial;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
*
* @author sqlitetutorial.net
*/
public class BLOBApp {
private Connection connect() {
//...
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
BLOBApp app = new BLOBApp();
app.updatePicture(1, "c:\\temp\\HP_Laptop.jpg");
}
}
Tenga en cuenta que no repetimos el cuerpo de los métodos que ya mencionamos.
Ejecutamos el programa y revisemos la tabla de materiales nuevamente.
/**
* read the picture file and insert into the material master table
*
* @param materialId
* @param filename
*/
public void readPicture(int materialId, String filename) {
// update sql
String selectSQL = "SELECT picture FROM materials WHERE id=?";
ResultSet rs = null;
FileOutputStream fos = null;
Connection conn = null;
PreparedStatement pstmt = null;
try {
conn = connect();
pstmt = conn.prepareStatement(selectSQL);
pstmt.setInt(1, materialId);
rs = pstmt.executeQuery();
if (conn != null) {
conn.close();
}
if (fos != null) {
fos.close();
}
Por ejemplo, podemos usar el método readPicture () para obtener los datos BLOB que actualizamos
para el id. De material 1 y guardarlos en un archivo llamado archivo HP_Laptop_From_BLOB.jpg.