栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java 连接 Sqlite 数据库工具类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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添加依赖

  
	  sqlite
	  sqlite-jdbc
	  3.18.0
  

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();
            //throw new Exception(e);
        } 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();
           // throw new Exception(e);
        } finally {
            freeConn(conn, ptmt);
        }
        return result;
    }
 public static List> query(String sql, Object ... objs)  {
        List> 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>();
            while (rs.next()) {
                Map map = new HashMap();
                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();
            //throw new Exception(e);
        } finally {
            freeConn(conn, ptmt);
        }
        return list;
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/318818.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号