如何使用JDBC程序连接到SQLite数据库?

答:SQLite是一个进程内库,可实现自包含的,无服务器的,零配置的事务型SQL数据库引擎。它是一个零配置的数据库,这意味着像其他数据库一样,您无需在系统中对其进行配置。

SQLite引擎不是一个独立于其他数据库的独立进程,您可以根据需要将其静态或动态链接到您的应用程序。SQLite直接访问其存储文件。

与SQLite数据库连接的URL为jdbc:sqlite:test.db与之连接的驱动程序类名称为org.sqlite.JDBC

在继续进行示例之前:

  • 从sqlite-jdbcrepository下载最新版本的sqlite-jdbc-(VERSION).jar。

  • 在类路径中添加下载的jar文件sqlite-jdbc-(VERSION).jar,或者将其与-classpath选项一起使用,如以下示例中 。

示例

假设我们在SQLite数据库中有一个名为employee_data的表,其中包含4条记录,如下所示:

ID      NAME       AGE    ADDRESS     SALARY
------- -------- ------- ---------- ----------
1        Paul       32   California   20000.0
2        Allen      25   Texas        15000.0
3        Teddy      23   Norway       20000.0
4        Mark       25   Richmond     65000.0

接下来的JDBC程序建立与SQLite数据库的连接,检索名为employee_data的表的内容并显示它。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ConnectToSQLite {
   public static void main(String[] args) throws Exception {
      //注册驱动程序
      DriverManager.registerDriver(new org.sqlite.JDBC());
      //获得连接
      String url = "jdbc:sqlite:test.db";
      Connection con = DriverManager.getConnection(url, "root", "password");
      System.out.println("Connection established......");
      //查询以检索记录
      String query = "Select * from employee_data";
      //执行查询
      ResultSet rs = stmt.executeQuery(query);
      System.out.println("Contents of the employee_data table:");
      while(rs.next()) {
         System.out.print("ID: "+rs.getInt("ID")+", ");
         System.out.print("Name: "+rs.getString("Name")+", ");
         System.out.print("Age: "+rs.getInt("Age")+", ");
         System.out.print("Salary: "+rs.getInt("Salary")+", ");
         System.out.print("Address: "+rs.getString("Address"));
         System.out.println();
      }
   }
}

输出结果

Connections established......
Contents of the employee_data table:
ID: 1, Name: Paul, Age: 32, Salary: 20000, Address: California
ID: 2, Name: Allen, Age: 25, Salary: 15000, Address: Texas
ID: 3, Name: Teddy, Age: 23, Salary: 20000, Address: Norway
ID: 4, Name: Mark, Age: 25, Salary: 65000, Address: Rich-Mond