sqlite是一个由C语言编写的嵌入式数据库管理API,只有一个几百KByte的dll,无需安装,操作是只需要调用其提供的API即可。因为是C语言编写,其API并不符合JDBC规范,因此有人编写了一个对应的jar包(实际上就是跨语言操作,调用dll)。
java操作sqlite
1、下载jar包“sqlite-jdbc-3.7.2.jar”。
这个jar包把dll转换成符合java jdbc规范的方式使用。
2、准备开发环境
Windows 7、MyEclipse 8.6、jdk1.7
3、在MyEclipse上新建java Project工程,目录结构如下:
sqliteDemo
src
com.jasper.sqlite
Testsqlite.java
lib
sqlite-jdbc-3.7.2.jar
sqlite.database
Testsqlite.java // 样例代码
sqlite.database // 数据库文件(后缀可以随便写)
4、编写Testsqlite.java代码
package com.jasper.sqlite;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.sqlException;
import java.sql.Statement;
public class Testsqlite {
public static void main( String[] args ) {
// 数据库文件路径
String databaseFile = Testsqlite.class.getClassLoader().getResource("").getPath() + "../sqlite.database";
System.out.println(databaseFile);
Connection con = null;
Statement st = null;
try {
// 加载驱动
Class.forName("org.sqlite.JDBC");
// 获取数据库连接
con = DriverManager.getConnection("jdbc:sqlite:" + databaseFile);
// 设置提交事物为false
con.setAutoCommit(false);
st = con.createStatement();
// 设置超时
st.setQueryTimeout(30);
// 执行删除操作
st.execute("drop table if exists person");
// 执行创建操作
st.execute("create table person(id integer,name string)");
// 执行插入操作
st.execute("insert into person(id,name) values(1,'aaa')");
st.execute("insert into person(id,name) values(2,'bbb')");
st.execute("insert into person(id,name) values(3,'ccc')");
st.execute("insert into person(id,name) values(4,'eee')");
ResultSet rs = st.executeQuery("select * from person");
// 打印结果
while (rs.next()) {
System.out.println("id:" + rs.getInt("id") + ",name:" + rs.getString("name"));
}
// 提交
con.commit();
} catch (ClassNotFoundException e) {
e.printStackTrace();
try {
if (con != null) {
// 回滚
con.rollback();
}
} catch (sqlException e1) {
e1.printStackTrace();
}
} catch (sqlException e) {
e.printStackTrace();
try {
if (con != null) {
// 回滚
con.rollback();
}
} catch (sqlException e1) {
e1.printStackTrace();
}
} finally {
if (st != null) {
try {
st.close();
} catch (sqlException e) {
e.printStackTrace();
}
}
if (con != null) {
try {
con.close();
} catch (sqlException e) {
e.printStackTrace();
}
}
}
}
}
5、执行结果 /D:/myEclipseWorkspaces/mybatisDemo/bin/../sqlite.database id:1,name:aaa id:2,name:bbb id:3,name:ccc id:4,name:eee