English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой главе вы узнаете, как использовать SQLite в Java-программах.
Прежде чем начать использовать SQLite в наших Java-программах, вам нужно убедиться, что на вашем компьютере установлены драйвер SQLite JDBC и Java. Вы можете проверить руководства по Java, чтобы установить Java на вашем компьютере. Теперь давайте проверим, как установить драйвер SQLite JDBC.
изsqlite-jdbcиз репозитория загрузите последнюю версиюsqlite-jdbc-(VERSION).jar.
Сохраните загруженный jar файлsqlite-jdbc-(VERSION).jar добавитьДобавьте в вашу класс-путь, или используйте опцию -classpath, как показано в следующем примере.
Следующий Java-программа показывает, как подключиться к существующей базе данных. Если база данных не существует, она будет создана, и в конечном итоге будет возвращен объект базы данных.
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("База данных успешно открыта"); } }
Теперь, давайте скомпилируем и запустим указанный выше программу, чтобыtest.dbСоздайте базу данных в текущем каталоге. Вы можете изменить путь по своему усмотрению. Мы предполагаем, что в текущем каталоге предоставлена последняя версия JDBC-драйвераsqlite-jdbc-3.7.2.jar.
$javac SQLiteJDBC.java $java -classpath ":.sqlite-jdbc-3.7.2.jar" SQLiteJDBC Успешно открыта база данных
Если вы используете компьютер с Windows, вы можете скомпилировать и запустить код следующим образом:
$javac SQLiteJDBC.java $java -classpath ".;sqlite-jdbc-3.7.2.jar" SQLiteJDBC База данных успешно открыта
Следующий Java-программа используется для создания таблицы в созданной ранее базе данных.
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("База данных успешно открыта"); 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("Таблица создана успешно"); } }
После компиляции и выполнения указанного выше программы, она создаст таблицу COMPANY в вашей компании:test.dbФинальный список файлов такой:
-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
Ниже приведен пример 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("База данных успешно открыта"); 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 и отобразит следующие строки:
База данных успешно открыта Запись создана успешно
Ниже приведен пример 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("База данных успешно открыта"); 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); System.out.println("ВЕК = " + age); System.out.println("АДРЕСА = " + address); System.out.println("ЗАРПЛАТА = " + 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("Операция выполнена успешно"); } }
После компиляции и выполнения указанного выше программы будет получен следующий результат.
База данных успешно открыта 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 Операция выполнена успешно
Ниже приведен пример 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("База данных успешно открыта"); 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); System.out.println("ВЕК = " + age); System.out.println("АДРЕСА = " + address); System.out.println("ЗАРПЛАТА = " + 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("Операция выполнена успешно"); } }
После компиляции и выполнения указанного выше программы будет получен следующий результат.
База данных успешно открыта 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("База данных успешно открыта"); 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); System.out.println("ВЕК = " + age); System.out.println("АДРЕСА = " + address); System.out.println("ЗАРПЛАТА = " + 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("Операция выполнена успешно"); } }
После компиляции и выполнения указанного выше программы будет получен следующий результат.
База данных успешно открыта 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 Операция выполнена успешно