关闭

SQLite嵌入式数据库

95人阅读 评论(0) 收藏 举报

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:22260次
    • 积分:524
    • 等级:
    • 排名:千里之外
    • 原创:31篇
    • 转载:4篇
    • 译文:0篇
    • 评论:4条
    最新评论