SQLite - Java: Una Guida per Principianti

Ciao futuro supercampione del coding! ? Benvenuto nel meraviglioso mondo di SQLite e Java. Sono entusiasta di essere il tuo guida in questo viaggio emozionante. Come qualcuno che ha insegnato scienze informatiche per anni, posso assicurarti che alla fine di questo tutorial, resterai sorpreso di ciò che sei in grado di accomplire. Allora, entriamo nel vivo!

SQLite - Java

Installazione

Prima di creare magia con il database, dobbiamo configurare i nostri strumenti. Pensa a questo come preparare la tua cucina prima di cucinare un delizioso pasto. ?

  1. Prima, scarica il driver JDBC di SQLite da qui.
  2. Aggiungi il file JAR scaricato al classpath del tuo progetto Java.

Ecco un piccolo pezzo di codice per controllare se tutto è configurato correttamente:

import java.sql.*;

public class SQLiteTest {
public static void main(String[] args) {
try {
Class.forName("org.sqlite.JDBC");
System.out.println("Driver JDBC di SQLite caricato con successo!");
} catch (ClassNotFoundException e) {
System.out.println("Errore: Driver JDBC di SQLite non trovato.");
e.printStackTrace();
}
}
}

Se vedi "Driver JDBC di SQLite caricato con successo!" quando esegui questo codice, sei tutto impostato!

Connessione al Database

Ora che abbiamo i nostri ingredienti pronti, iniziamo a cucinare! ?️ Connetersi a un database è come aprire il frigorifero - è il primo passo per creare qualcosa di straordinario.

import java.sql.*;

public class SQLiteConnect {
public static void main(String[] args) {
Connection conn = null;
try {
String url = "jdbc:sqlite:test.db";
conn = DriverManager.getConnection(url);
System.out.println("Connessione a SQLite stabilita.");
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
}
}
}

Questo codice crea una connessione a un database SQLite chiamato "test.db". Se il file non esiste, SQLite lo creerà per te. Non è meraviglioso?

Creazione di una Tabella

Ora che siamo connessi, creiamo una tabella. Pensa a una tabella come a un foglio di calcolo all'interno del tuo database. Creeremo una semplice tabella "students".

import java.sql.*;

public class CreateTable {
public static void main(String[] args) {
String url = "jdbc:sqlite:test.db";

String sql = "CREATE TABLE IF NOT EXISTS students (" +
"id INTEGER PRIMARY KEY," +
"name TEXT NOT NULL," +
"grade INTEGER" +
");";

try (Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement()) {
stmt.execute(sql);
System.out.println("Tabella creata con successo!");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Questo codice crea una tabella chiamata "students" con tre colonne: id, name e grade. La parte "IF NOT EXISTS" è come un gentle knock alla porta - controlla se la tabella già esiste prima di cercare di crearla.

Operazione INSERT

Ora aggiungiamo alcuni dati alla nostra tabella. Questo è come riempire il foglio di calcolo che abbiamo creato prima.

import java.sql.*;

public class InsertData {
public static void main(String[] args) {
String url = "jdbc:sqlite:test.db";
String sql = "INSERT INTO students(name,grade) VALUES(?,?)";

try (Connection conn = DriverManager.getConnection(url);
PreparedStatement pstmt = conn.prepareStatement(sql)) {

pstmt.setString(1, "Alice");
pstmt.setInt(2, 85);
pstmt.executeUpdate();

pstmt.setString(1, "Bob");
pstmt.setInt(2, 90);
pstmt.executeUpdate();

System.out.println("Dati inseriti con successo!");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Questo codice inserisce due studenti nella nostra tabella. I "?" nella dichiarazione SQL sono placeholders che riempiamo con setString() e setInt(). È come riempire le vuote in una frase!

Operazione SELECT

Ora che abbiamo aggiunto alcuni dati, retrievesiamoli. Questo è come leggere dal nostro foglio di calcolo.

import java.sql.*;

public class SelectData {
public static void main(String[] args) {
String url = "jdbc:sqlite:test.db";
String sql = "SELECT id, name, grade FROM students";

try (Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql)) {

while (rs.next()) {
System.out.println(rs.getInt("id") + "\t" +
rs.getString("name") + "\t" +
rs.getInt("grade"));
}
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Questo codice recupera tutti i dati dalla nostra tabella "students" e li stampa. Il ciclo while è come passare attraverso ogni riga del nostro foglio di calcolo uno per uno.

Operazione UPDATE

A volte dobbiamo cambiare i dati già presenti nella nostra tabella. Aggiorniamo il voto di Alice.

import java.sql.*;

public class UpdateData {
public static void main(String[] args) {
String url = "jdbc:sqlite:test.db";
String sql = "UPDATE students SET grade = ? WHERE name = ?";

try (Connection conn = DriverManager.getConnection(url);
PreparedStatement pstmt = conn.prepareStatement(sql)) {

pstmt.setInt(1, 95);
pstmt.setString(2, "Alice");
pstmt.executeUpdate();
System.out.println("Dati aggiornati con successo!");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Questo codice aggiorna il voto di Alice a 95. È come cancellare una cella nel nostro foglio di calcolo e scrivere un nuovo valore.

Operazione DELETE

Finalmente, impariamo come rimuovere i dati dalla nostra tabella. Forse Bob ha deciso di trasferirsi in un'altra scuola.

import java.sql.*;

public class DeleteData {
public static void main(String[] args) {
String url = "jdbc:sqlite:test.db";
String sql = "DELETE FROM students WHERE name = ?";

try (Connection conn = DriverManager.getConnection(url);
PreparedStatement pstmt = conn.prepareStatement(sql)) {

pstmt.setString(1, "Bob");
pstmt.executeUpdate();
System.out.println("Dati eliminati con successo!");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}

Questo codice rimuove Bob dalla nostra tabella "students". È come cancellare una riga intera dal nostro foglio di calcolo.

Eccoci! Ora hai imparato le basi di come lavorare con SQLite in Java. Ricorda, la pratica fa perfezione, quindi non aver paura di sperimentare con questi esempi. Prima di sapere, sarai in grado di creare applicazioni di database complesse!

Ecco una tabella di riferimento rapida dei principali metodi che abbiamo utilizzato:

Metodo Descrizione
DriverManager.getConnection(url) Stabilisce una connessione al database
Connection.createStatement() Crea un oggetto Statement per eseguire SQL
Connection.prepareStatement(sql) Crea un PreparedStatement per eseguire SQL parametrizzato
Statement.execute(sql) Esegue una dichiarazione SQL che non restituisce un result set
Statement.executeQuery(sql) Esegue una query SQL e restituisce un ResultSet
PreparedStatement.setString(index, value) Imposta un parametro String nel PreparedStatement
PreparedStatement.setInt(index, value) Imposta un parametro int nel PreparedStatement
PreparedStatement.executeUpdate() Esegue una dichiarazione INSERT, UPDATE o DELETE
ResultSet.next() Muove al prossimo record in un ResultSet
ResultSet.getInt(columnName) Ottiene un valore int dalla riga corrente
ResultSet.getString(columnName) Ottiene un valore String dalla riga corrente

Continua a programmare, continua a imparare, e soprattutto, divertiti! ??

Credits: Image by storyset