要使用java程序連接SQLite,并與SQLite進(jìn)行數(shù)據(jù)存取操作,必須在系統(tǒng)上設(shè)置SQLite JDBC驅(qū)動(dòng)程序和安裝Java JDK。按照以下步驟進(jìn)行:
sqlite-jdbc-(VERSION).jar。打開Eclipse IDE,創(chuàng)建一個(gè)JAVA工程:JavaWithSQLite,下載所需的sqlite-jdbc-(VERSION).jar(下載地址:http://bitbucket.org/xerial/sqlite-jdbc/downloads/ 或者 http://mvnrepository.com/artifact/org.xerial/sqlite-jdbc/3.18.0 ),并將它放入到項(xiàng)目的類庫(kù)中。
使用以下代碼使用Java編程語(yǔ)言連接到SQLite數(shù)據(jù)庫(kù),首先創(chuàng)建一個(gè)類:ConnectSQLite.java,其代碼如下所示 -
package com.yiibai;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectSQLite {
/**
* Connect to a sample database
*/
public static void connect() {
Connection conn = null;
try {
// db parameters
String url = "jdbc:sqlite:D:/software/sqlite/java-sqlite.db";
// create a connection to the database
conn = DriverManager.getConnection(url);
System.out.println("Connection to SQLite has been established.");
} catch (SQLException e) {
System.out.println(e.getMessage());
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
}
}
/**
* @param args
* the command line arguments
*/
public static void main(String[] args) {
connect();
}
}
執(zhí)行上面代碼后,應(yīng)該會(huì)創(chuàng)建一個(gè)文件:D:/software/sqlite/java-sqlite.db,并與數(shù)據(jù)庫(kù)java-sqlite.db連接。
還可以使用java編程語(yǔ)言在SQLite中創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)。假設(shè)要使用Java來(lái)創(chuàng)建一個(gè)名為java_sqlite.db的數(shù)據(jù)庫(kù)。創(chuàng)建一個(gè)公共類:CreateDB.java并使用以下代碼:
package com.yiibai;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.SQLException;
public class CreateDB {
public static void createNewDatabase(String fileName) {
String url = "jdbc:sqlite:" + fileName;
try {
Connection conn = DriverManager.getConnection(url);
if (conn != null) {
DatabaseMetaData meta = conn.getMetaData();
System.out.println("The driver name is " + meta.getDriverName());
System.out.println("A new database has been created.");
}
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
public static void main(String[] args) {
createNewDatabase("D:/software/sqlite/create-db.db");
}
}
執(zhí)行上面代碼,得到以下結(jié)果 -
The driver name is SQLiteJDBC
A new database has been created.
現(xiàn)在創(chuàng)建一個(gè)名為“create-db.db”的新數(shù)據(jù)庫(kù)。可以看到對(duì)應(yīng)創(chuàng)建目錄有一個(gè)文件:create-db.db存在。

假設(shè)要通過(guò)Java程序在SQLite中創(chuàng)建一個(gè)名為tb_emp的表,tb_emp表具有id,name和capacity這三列。首先創(chuàng)建一個(gè)Java類:CreateTable.java,并使用以下代碼:
package com.yiibai;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class CreateTable {
public static void createNewTable() {
// SQLite connection string
String url = "jdbc:sqlite:D:/software/sqlite/java-sqlite.db";
// SQL statement for creating a new table
String sql = "CREATE TABLE IF NOT EXISTS employees (\n" + " id integer PRIMARY KEY,\n"
+ " name text NOT NULL,\n" + " capacity real\n" + ");";
try {
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
stmt.execute(sql);
System.out.println("Create table finished.");
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
/**
* @param args
* the command line arguments
*/
public static void main(String[] args) {
createNewTable();
}
}
執(zhí)行上面代碼,得到以下結(jié)果 -
Create table finished.
執(zhí)行上面代碼后,將在java-sqlite.db數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)名稱為:employees 的表。
創(chuàng)建表后,使用以下代碼在表中插入一些記錄。 創(chuàng)建一個(gè)新的Java類:InsertRecords,具有以下代碼:
package com.yiibai;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class InsertRecords {
private Connection connect() {
// SQLite connection string
String url = "jdbc:sqlite:D:/software/sqlite/java-sqlite.db";
Connection conn = null;
try {
conn = DriverManager.getConnection(url);
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return conn;
}
public void insert(String name, double capacity) {
String sql = "INSERT INTO employees(name, capacity) VALUES(?,?)";
try {
Connection conn = this.connect();
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setDouble(2, capacity);
pstmt.executeUpdate();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
public static void main(String[] args) {
InsertRecords app = new InsertRecords();
// insert three new rows
app.insert("Maxsu", 30000);
app.insert("Minsu", 40000);
app.insert("Miswong", 50000);
System.out.println("Insert data finished.");
}
}
現(xiàn)在記錄被插入到表中。 可以使用SELECT命令查看它:
sqlite> .open java-sqlite.db
sqlite> .tables
employees
sqlite> select * from employees;
id,name,capacity
1,Maxsu,30000.0
2,Minsu,40000.0
3,Miswong,50000.0
sqlite>
sqlite>
要使用Java程序從表中選擇/查詢記錄,請(qǐng)使用以下代碼。 創(chuàng)建一個(gè)新的Java類 - SelectRecords.java,使用以下代碼 -
package com.yiibai;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class SelectRecords {
private Connection connect() {
// SQLite connection string
String url = "jdbc:sqlite:D:/software/sqlite/java-sqlite.db";
Connection conn = null;
try {
conn = DriverManager.getConnection(url);
} catch (SQLException e) {
System.out.println(e.getMessage());
}
return conn;
}
public void selectAll() {
String sql = "SELECT * FROM employees";
try {
Connection conn = this.connect();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
// loop through the result set
while (rs.next()) {
System.out.println(rs.getInt("id") + "\t" + rs.getString("name") + "\t" + rs.getDouble("capacity"));
}
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
/**
* @param args
* the command line arguments
*/
public static void main(String[] args) {
SelectRecords app = new SelectRecords();
app.selectAll();
}
}
執(zhí)行上面代碼,得到以下結(jié)果 -

注意: 因?yàn)槎际峭ㄟ^(guò)使用相同的編程過(guò)程,所以您可自己編寫其它數(shù)據(jù)庫(kù)操作,比如:更新和刪除表中的數(shù)據(jù)等等。