java 连接 Sqlite 数据库工具类

一、简介

sqlite3非常小,轻量级,就几百K大小;不需要用户名,密码,直接就可以对数据库进行操作。

二、安装sqlite3

1.安装sqlite3

sudo apt-get install sqlite3

2.安装库文件

sudo apt-get install libsqlite3-dev

不安装库文件的话,直接在C语言中包含头文件#include

三、sqlite3简单用法

1.查看版本信息:sqlite3 -version
2.进入sqlite3:直接输入sqlite3回车即可,和进入python一样

3.退出sqlite3:.quit(sqlite比较独特的是,很多命令前都加了一个’.’)

4.创建数据库:sqlite3 databasename.db(注意直接在shell中输入这条语句,不要在sqlite3环境中输入)

创建的数据库名后面一般加上.db,它会在当前目录下创建一个数据库文件databasename.db

好像创建数据库之后,得查看一下或者干点别的,不能直接.quit退出,不然会发现没有建立数据库文件。

5.查看数据库列表:.databases
6.删除数据库:直接把目录下的数据库文件删除就可以了。

7.选择数据库:.open +数据库名
这里如果数据库存在的话,就选择这个数据库;如果数据库不存在的话,系统会创建一个数据库test.db,然后选中这个数据库。

8.创建表(需要先选中数据库),和mysql中差不多

CREATE TABLE Student(

ID INT PRIMARY KEY NOT NULL,

NAME VARCHAR(20),

AGE INT);
9.查看数据库中有哪些表:.tables

10.查看表的字段信息:.schema+表名

11.删除指定的表:drop table +表名

12.其他增删查改操作和mysql中一致。例如查找:

select * from student where ID=1;

四、java调用sqlite3
1.maven添加依赖

  <dependency>
      <groupId>sqlite</groupId>
      <artifactId>sqlite-jdbc</artifactId>
      <version>3.18.0</version>
  </dependency>

2.创建数据库连接池


 private static DruidDataSource dbPoll;
    static {
        try {
            String installPath = System.getProperty("user.dir");
            StringBuffer config = new StringBuffer();
            config.append("jdbc:sqlite:");
            config.append(installPath);
            config.append(System.getProperty("file.separator"));
            config.append(PropertiesUtil.readByKey("sqlite.database"));
            dbPoll = new DruidDataSource();
            dbPoll.setDriverClassName("org.sqlite.JDBC");
            dbPoll.setUrl(config.toString());
            dbPoll.setInitialSize(Integer.parseInt(PropertiesUtil.readByKey("sqlite.initialSize")));
            dbPoll.setMinIdle(Integer.parseInt(PropertiesUtil.readByKey("sqlite.minIdle")));
            dbPoll.setMaxActive(Integer.parseInt(PropertiesUtil.readByKey("sqlite.maxActive")));
            dbPoll.setValidationQuery(PropertiesUtil.readByKey("sqlite.sqlvalidationQuery"));
        } catch (Exception e) {
            log.error(Arrays.asList(e.getStackTrace()));
        }
    }

        public static DruidPooledConnection getConn() throws Exception {
        return dbPoll.getConnection();
    }

//进行crud

public static int save(String sql, Object... objs)  {
        int result = 0;
        DruidPooledConnection conn = null;
        PreparedStatement ptmt = null;
        try {
            conn = getConn();
            ptmt = conn.prepareStatement(sql);
            for (int i = 0; i < objs.length; i++) {
                ptmt.setObject(i + 1, objs[i]);
            }
            result = ptmt.executeUpdate();
        } catch (Exception e) {
            log.error(Arrays.asList(e.getStackTrace()));
             e.printStackTrace();

        } finally {
            freeConn(conn, ptmt);
        }
        return result;
    }
public static int update(String sql, Object... objs)  {
        int result = 0;
        DruidPooledConnection conn = null;
        PreparedStatement ptmt = null;
        try {
            conn = getConn();
            ptmt = conn.prepareStatement(sql);
            if (objs != null) {
                for (int i = 0; i < objs.length; i++) {
                    ptmt.setObject(i + 1, objs[i]);
                }
            }
            result = ptmt.executeUpdate();
        } catch (Exception e) {
            log.error(Arrays.asList(e.getStackTrace()));
            e.printStackTrace();

        } finally {
            freeConn(conn, ptmt);
        }
        return result;
    }
 public static List<Map<String, Object>> query(String sql, Object ... objs)  {
        List<Map<String, Object>> list = null;
        DruidPooledConnection conn = null;
        PreparedStatement ptmt = null;
        try {
            conn = getConn();
            ptmt = conn.prepareStatement(sql);

            int index = 1;
            for (Object o : objs) {
                ptmt.setObject(index++, o);
            }
            ResultSet rs = ptmt.executeQuery();
            ResultSetMetaData rsmd = rs.getMetaData();
            String[] keys = new String[rsmd.getColumnCount()];
            for (int m = 1; m  rsmd.getColumnCount(); m++) {
                keys[m - 1] = rsmd.getColumnLabel(m);
            }
            list = new ArrayList<Map<String, Object>>();
            while (rs.next()) {
                Map<String, Object> map = new HashMap<String, Object>();
                for (int n = 0; n < keys.length; n++) {
                    map.put(keys[n], rs.getObject(keys[n]));
                }
                list.add(map);
            }

        } catch (Exception e) {
            log.error(Arrays.asList(e.getStackTrace()));
            e.printStackTrace();

        } finally {
            freeConn(conn, ptmt);
        }
        return list;
    }

Original: https://blog.csdn.net/weixin_41518795/article/details/120705326
Author: ~ 一颗牙疼
Title: java 连接 Sqlite 数据库工具类

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/816073/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球