加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite嵌入式数据库

发布时间:2020-12-12 19:28:12 所属栏目:百科 来源:网络整理
导读:SQLite是一个由C语言编写的嵌入式数据库管理API,只有一个几百KByte的dll,无需安装,操作是只需要调用其提供的API即可。因为是C语言编写,其API并不符合JDBC规范,因此有人编写了一个对应的jar包(实际上就是跨语言操作,调用dll)。 java操作SQLite 1、下

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读