SQLite嵌入式数据库

来源:互联网 发布:人工智能平台发布 编辑:程序博客网 时间:2024/05/17 05:14

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

0 0
原创粉丝点击