English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java di SQLite

In questa sezione, imparerai come utilizzare SQLite nei programmi Java.

installazione

Prima di iniziare a utilizzare SQLite nei nostri programmi Java, devi assicurarti che SQLite JDBC Driver e Java siano installati sul tuo computer. Puoi controllare le guide Java per installare Java sul tuo computer. Ora, vediamo come configurare il driver JDBC di SQLite.

  • dasqlite-jdbcScarica l'ultima versione dal repositorysqlite-jdbc-(VERSION).jar.

  • Salva il file jar scaricatoAggiungi sqlite-jdbc-(VERSION).jarAl tuo percorso di classi, o utilizzalo con l'opzione -classpath, come nel seguente esempio.

Connessione al database

Il seguente programma Java mostra come connettersi a un database esistente. Se il database non esiste, verrà creato e infine restituito un oggetto database.

import java.sql.*;
public class SQLiteJDBC {
  public static void main(String args[]) {
      Connection c = null;
      
      try {
         Class.forName("org.sqlite.JDBC");
         c = DriverManager.getConnection("jdbc:sqlite:test.db");
      } catch (Exception e) {
         System.err.println(e.getClass().getName() + ": "+ e.getMessage());
         System.exit(0);
      }
      System.out.println("Il database è stato aperto con successo");
   }
}

Ora, compiliamo ed eseguiamo il programma sopra menzionato pertest.dbCrea un database nella directory corrente. Puoi modificare il percorso secondo necessità. Supponiamo che la versione più recente del driver JDBC sia disponibile nella directory correntesqlite-jdbc-3.7.2.jar.

$javac SQLiteJDBC.java
$java -classpath ":.sqlite-jdbc-3.7.2.jar" SQLiteJDBC
Database aperto con successo

Se stai utilizzando un computer Windows, puoi compilare ed eseguire il codice nel modo seguente-

$javac SQLiteJDBC.java
$java -classpath ".;sqlite-jdbc-3.7.2.jar" SQLiteJDBC
Il database è stato aperto con successo

Creazione tabella

Il seguente programma Java verrà utilizzato per creare una tabella nel database creato in precedenza.

import java.sql.*;
public class SQLiteJDBC {
   public static void main(String args[]) {
      Connection c = null;
      Statement stmt = null;
      
      try {
         Class.forName("org.sqlite.JDBC");
         c = DriverManager.getConnection("jdbc:sqlite:test.db");
         System.out.println("Il database è stato aperto con successo");
         stmt = c.createStatement();
         String sql = "CREATE TABLE COMPANY "
                        "(ID INT PRIMARIA CHIAVE NULL,"
                        "NAME                                         TEXT         NULL, "+ 
                        "AGE                                         INT         NULL, "+ 
                        "ADDRESS                                 CHAR(50), "+ 
                        "SALARY                                     REAL)"; 
         stmt.executeUpdate(sql);
         stmt.close();
         c.close();
      } catch (Exception e) {
         System.err.println(e.getClass().getName() + ": "+ e.getMessage());
         System.exit(0);
      }
      System.out.println("Creazione tabella con successo");
   }
}

Dopo la compilazione ed esecuzione del programma sopra, verrà creata la tabella COMPANY nel tuoazienda,test.dbElenco finale dei file come segue-

-rw-r--r--. 1 root root 3201128 Jan 22 19:04 sqlite-jdbc-3.7.2.jar
-rw-r--r--. 1 root root 1506 May 8 05:43 SQLiteJDBC.class
-rw-r--r--. 1 root root 832 May 8 05:42 SQLiteJDBC.java
-rw-r--r--. 1 root root 3072 May 8 05:43 test.db

INSERT 操作

以下Java程序显示了如何在上面的示例中创建的COMPANY表中创建记录。

import java.sql.*;
public class SQLiteJDBC {
   public static void main(String args[]) {
      Connection c = null;
      Statement stmt = null;
      
      try {
         Class.forName("org.sqlite.JDBC");
         c = DriverManager.getConnection("jdbc:sqlite:test.db");
         c.setAutoCommit(false);
         System.out.println("Il database è stato aperto con successo");
         stmt = c.createStatement();
         String sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " +
                        "VALUES (1, 'Paul', 32, 'California', 20000.00);" 
         stmt.executeUpdate(sql);
         sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " +
                  "VALUES (2, 'Allen', 25, 'Texas', 15000.00);" 
         stmt.executeUpdate(sql);
         sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " +
                  "VALUES (3, 'Teddy', 23, 'Norway', 20000.00);" 
         stmt.executeUpdate(sql);
         sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " +
                  "VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00);" 
         stmt.executeUpdate(sql);
         stmt.close();
         c.commit();
         c.close();
      } catch (Exception e) {
         System.err.println(e.getClass().getName() + ": "+ e.getMessage());
         System.exit(0);
      }
      System.out.println("记录创建成功");
   }
}

编译并执行上述程序时,它将在COMPANY表中创建给定记录,并显示以下两行-

Il database è stato aperto con successo
记录创建成功

SELECT 操作

以下Java程序显示了如何从在上面的示例中创建的COMPANY表中获取和显示记录。

import java.sql.*;
public class SQLiteJDBC {
  public static void main(String args[]) {
   Connection c = null;
   Statement stmt = null;
   try {
      Class.forName("org.sqlite.JDBC");
      c = DriverManager.getConnection("jdbc:sqlite:test.db");
      c.setAutoCommit(false);
      System.out.println("Il database è stato aperto con successo");
      stmt = c.createStatement();
      ResultSet rs = stmt.executeQuery("SELECT * FROM COMPANY;");
      
      while (rs.next()) {
         int id = rs.getInt("id");
         String name = rs.getString("name");
         int age = rs.getInt("age");
         String address = rs.getString("address");
         float salary = rs.getFloat("salary");
         
         System.out.println("ID = "+ id);
         System.out.println("NAME = "+ name);
         System.out.println("AGE = "+ age);
         System.out.println("ADDRESS = "+ address);
         System.out.println("SALARY = "+ salary);
         System.out.println();
      }
      rs.close();
      stmt.close();
      c.close();
   } catch (Exception e) {
      System.err.println(e.getClass().getName() + ": "+ e.getMessage());
      System.exit(0);
   }
   System.out.println("Operazione eseguita con successo");
  }
}

Dopo la compilazione ed esecuzione del programma sopra riportato, verranno generati i seguenti risultati.

Il database è stato aperto con successo
ID = 1
NAME = Paul
AGE = 32
ADDRESS = California
SALARY = 20000.0
ID = 2
NAME = Allen
AGE = 25
ADDRESS = Texas
SALARY = 15000.0
ID = 3
NAME = Teddy
AGE = 23
ADDRESS = Norway
SALARY = 20000.0
ID = 4
NAME = Mark
AGE = 25
ADDRESS = Rich-Mond
SALARY = 65000.0
Operazione Effettuata con Successo

UPDATE 操作

以下Java代码显示了如何使用UPDATE语句更新任何记录,然后从COMPANY表中获取并显示更新的记录。

import java.sql.*;
public class SQLiteJDBC {
  public static void main(String args[]) {
  
   Connection c = null;
   Statement stmt = null;
   
   try {
      Class.forName("org.sqlite.JDBC");
      c = DriverManager.getConnection("jdbc:sqlite:test.db");
      c.setAutoCommit(false);
      System.out.println("Il database è stato aperto con successo");
      stmt = c.createStatement();
      String sql = "UPDATE COMPANY set SALARY = 25000.00 where ID=1;";
      stmt.executeUpdate(sql);
      c.commit();
      ResultSet rs = stmt.executeQuery("SELECT * FROM COMPANY;");
      
      while (rs.next()) {
         int id = rs.getInt("id");
         String name = rs.getString("name");
         int age = rs.getInt("age");
         String address = rs.getString("address");
         float salary = rs.getFloat("salary");
         
         System.out.println("ID = "+ id);
         System.out.println("NAME = "+ name);
         System.out.println("AGE = "+ age);
         System.out.println("ADDRESS = "+ address);
         System.out.println("SALARY = "+ salary);
         System.out.println();
      }
      rs.close();
      stmt.close();
      c.close();
   } catch (Exception e) {
      System.err.println(e.getClass().getName() + ": "+ e.getMessage());
      System.exit(0);
   }
    System.out.println("操作成功完成");
   }
}

Dopo la compilazione ed esecuzione del programma sopra riportato, verranno generati i seguenti risultati.

Il database è stato aperto con successo
ID = 1
NAME = Paul
AGE = 32
ADDRESS = California
SALARY = 25000.0
ID = 2
NAME = Allen
AGE = 25
ADDRESS = Texas
SALARY = 15000.0
ID = 3
NAME = Teddy
AGE = 23
ADDRESS = Norway
SALARY = 20000.0
ID = 4
NAME = Mark
AGE = 25
ADDRESS = Rich-Mond
SALARY = 65000.0
操作成功完成

删除操作

以下Java代码显示了如何使用DELETE语句删除任何记录,然后从COMPANY表中获取并显示其余记录。

import java.sql.*;
public class SQLiteJDBC {
   public static void main(String args[]) {
      Connection c = null;
      Statement stmt = null;
      
      try {
         Class.forName("org.sqlite.JDBC");
         c = DriverManager.getConnection("jdbc:sqlite:test.db");
         c.setAutoCommit(false);
         System.out.println("Il database è stato aperto con successo");
         stmt = c.createStatement();
         String sql = "DELETE from COMPANY where ID=2;";
         stmt.executeUpdate(sql);
         c.commit();
         ResultSet rs = stmt.executeQuery("SELECT * FROM COMPANY;");
         
         while (rs.next()) {
         int id = rs.getInt("id");
         String name = rs.getString("name");
         int age = rs.getInt("age");
         String address = rs.getString("address");
         float salary = rs.getFloat("salary");
         
         System.out.println("ID = "+ id);
         System.out.println("NAME = "+ name);
         System.out.println("AGE = "+ age);
         System.out.println("ADDRESS = "+ address);
         System.out.println("SALARY = "+ salary);
         System.out.println();
      }
      rs.close();
      stmt.close();
      c.close();
      } catch (Exception e) {
         System.err.println(e.getClass().getName() + ": "+ e.getMessage());
         System.exit(0);
      }
      System.out.println("Operazione eseguita con successo");
   }
}

Dopo la compilazione ed esecuzione del programma sopra riportato, verranno generati i seguenti risultati.

Il database è stato aperto con successo
ID = 1
NAME = Paul
AGE = 32
ADDRESS = California
SALARY = 25000.0
ID = 3
NAME = Teddy
AGE = 23
ADDRESS = Norway
SALARY = 20000.0
ID = 4
NAME = Mark
AGE = 25
ADDRESS = Rich-Mond
SALARY = 65000.0
Operazione Effettuata con Successo