SQLite - Java
Installation
Bevor wir SQLite in einem Java-Programm verwenden, müssen wir sicherstellen, dass der SQLite JDBC-Treiber und Java bereits auf dem Rechner installiert sind. Du kannst das Java-Tutorial lesen, um zu erfahren, wie du Java auf deinem Computer installierst. Nun wollen wir sehen, wie man den SQLite JDBC-Treiber auf dem Rechner installiert.
Diese Website bietetDownload der Version 3.7.2 von sqlite-jdbcdie neuestesqlite-jdbc-(VERSION).jarVersion kann abgerufen werden unterhttps://github.com/xerial/sqlite-jdbc/releasesherunterladen.
Füge die heruntergeladene JAR-Datei deinem Classpath hinzusqlite-jdbc-(VERSION).jaroder verwende sie in der Option -classpath, die in späteren Beispielen erklärt wird.
Bevor du die Inhalte in den folgenden Abschnitten lernst, musst du ein grundlegendes Verständnis der Java JDBC-Konzepte haben. Wenn du die relevanten Kenntnisse noch nicht verstanden hast, wird empfohlen, dass du eine halbe Stunde damit verbringst, die relevanten Inhalte im JDBC-Tutorial zu lernen, was dir helfen wird, die als Nächstes erklärten Inhalte zu verstehen.
Verbindung zur Datenbank herstellen
Das folgende Java-Programm zeigt, wie man eine Verbindung zu einer vorhandenen Datenbank herstellt. Wenn die Datenbank nicht existiert, wird sie erstellt, und schließlich wird ein Datenbankobjekt zurückgegeben.
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("Opened database successfully");
}
}
Nun lass uns das obige Programm kompilieren und ausführen, um unsere Datenbank im aktuellen Verzeichnis zu erstellen.test.dbDu kannst den Pfad nach Bedarf ändern. Wir nehmen an, dass die im aktuellen Pfad verfügbare Version des JDBC-Treiberssqlite-jdbc-3.7.2.jar ist。
$javac SQLiteJDBC.java $java -classpath ".:sqlite-jdbc-3.7.2.jar" SQLiteJDBC Open database successfully
Wenn du einen Windows-Rechner verwenden möchtest, kannst du deinen Code wie folgt kompilieren und ausführen:
$javac SQLiteJDBC.java $java -classpath ".;sqlite-jdbc-3.7.2.jar" SQLiteJDBC Opened database successfully
Tabelle erstellen
Das folgende Java-Programm wird verwendet, um eine Tabelle in der zuvor erstellten Datenbank zu erstellen:
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("Opened database successfully");
stmt = c.createStatement();
String sql = "CREATE TABLE COMPANY " +
"(ID INT PRIMARY KEY NOT NULL," +
" NAME TEXT NOT NULL, " +
" AGE INT NOT 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("Table created successfully");
}
}
Wenn das obige Programm kompiliert und ausgeführt wird, wird es intest.dbdie Tabelle COMPANY erstellen, und die endgültige Dateiliste sieht wie folgt aus:
-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-Operation
Der folgende Java-Code zeigt, wie man Datensätze in der oben erstellten Tabelle COMPANY erstellt:
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("Opened database successfully");
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("Records created successfully");
}
}
Wenn das obige Programm kompiliert und ausgeführt wird, erstellt es die angegebenen Datensätze in der Tabelle COMPANY und zeigt die folgenden zwei Zeilen an:
Opened database successfully Records created successfully
SELECT-Operation
Das folgende Java-Programm zeigt, wie Datensätze aus der zuvor erstellten Tabelle COMPANY abgerufen und angezeigt werden:
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("Opened database successfully");
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("Operation done successfully");
}
}
Wenn das obige Programm kompiliert und ausgeführt wird, liefert es die folgenden Ergebnisse:
Opened database successfully 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 Operation done successfully
UPDATE-Operation
Der folgende Java-Code zeigt, wie die UPDATE-Anweisung verwendet wird, um einen beliebigen Datensatz zu aktualisieren und anschließend den aktualisierten Datensatz aus der Tabelle COMPANY abzurufen und anzuzeigen:
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("Opened database successfully");
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("Operation done successfully");
}
}
Wenn das obige Programm kompiliert und ausgeführt wird, liefert es die folgenden Ergebnisse:
Opened database successfully 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 Operation done successfully
DELETE-Operation
Der folgende Java-Code zeigt, wie die DELETE-Anweisung verwendet wird, um einen beliebigen Datensatz zu löschen und anschließend die verbleibenden Datensätze aus der Tabelle COMPANY abzurufen und anzuzeigen:
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("Opened database successfully");
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("Operation done successfully");
}
}
Wenn das obige Programm kompiliert und ausgeführt wird, liefert es die folgenden Ergebnisse:
Opened database successfully 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 Operation done successfullyAndere Erweiterungen