java应用中使用轻量的Sqlite

java应用中使用轻量的Sqlite
使用场景
在有些java项目要使用数据库存储数据,但是并不是对数据库要求很高时,
可以选择使用本地化的sqlite。
使用方式
在java应用中初始化时创建数据库db,生成比如data.db文件,在执行建表,
建索引等操作。
下面就可以正常使用增删改查了。
代码依赖
	<dependency>
        <groupId>org.xerial</groupId>
        <artifactId>sqlite-jdbc</artifactId>
        <version>3.34.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-dbcp2</artifactId>
        <version>2.8.0</version>
    </dependency>
初始化基础增删改查代码
package com.icare.iot.db;

import com.icare.iot.dto.UserDataEntity;
import com.icare.iot.util.GsonUtil;
import com.sun.org.glassfish.gmbal.Description;
import org.apache.commons.dbcp2.BasicDataSource;
import org.jfree.data.json.impl.JSONValue;
import org.sqlite.date.FastDateFormat;

import javax.sql.DataSource;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;

public class SqliteConfig {

//表基础字段
private static final String[] stableFields = {"id","userId","recMsg","createTime"};

private static final Map<Class,String[]> tbMapFields = new HashMap<>();
private static final Map<Class,String> tbMapName = new HashMap<>();

protected static BasicDataSource dataSource = null;
//db文件名
private static final String db_name ="iot.db";
private static final String TIME_FORMAT ="yyyy-MM-dd HH:mm:ss";

public static DataSource getDataSource() {
    synchronized (Thread.class) {
        if (null == dataSource) {
            dataSource = new BasicDataSource();
            dataSource.setUrl("jdbc:sqlite:"+db_name);
            dataSource.setDriverClassName("org.sqlite.JDBC");
        }
    }
    return dataSource;
}



//测试demo,
public static void main(String[] args) throws ParseException {
    initDB(UserDataEntity.class,new String[]{"userId","createTime","data1"});
    //插入数据
    UserDataEntity entity = new UserDataEntity();
    entity.setUserId(1);
    entity.setData1("data1");
    entity.setData2("data2");
    entity.setData3("data3");
    entity.setData4("data3");
    entity.setData5("data3");
    entity.setData6("data3");
    entity.setData7("data3");
    entity.setRecMsg("2342323");
    insert(entity);
    List<UserDataEntity> list = queryList(UserDataEntity.class, "select * from tb_user_data");
    System.out.println(GsonUtil.toJson(list));
    }
    
//查询指定userId的最近几条数据
 public static List<UserDataEntity> queryLastData(Integer userId,int size){
        String sql = "select * from tb_user_data where userId = "+userId+" order by createTime desc limit 0,"+size;
        List<UserDataEntity> list = queryList(UserDataEntity.class, sql);
        return list;
    }


public static void update(String sql) {
    DataSource data = getDataSource();
    Connection conn = null;
    try {
        conn = data.getConnection();
        PreparedStatement ps = conn.prepare
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
SQLite是一个开源的关系型数据库管理系统,它以嵌入式的方式被集成进各种应用程序,无需独立的服务器进程,方便部署和管理。Java是一种高级编程语言,具有平台无关性和面向对象的特点。JDBC是Java提供的用于与数据库进行交互的API,可以让Java程序通过统一的方式访问不同的关系型数据库。 v356是指SQLite Java JDBC驱动的版本号。驱动是连接Java程序与数据库之间的桥梁,负责实现数据库的底层连接和操作。v356作为一个特定版本的驱动,可能具有一些特定功能和修复了旧版本的一些错误和问题。 使用SQLite Java JDBC v356驱动,可以将SQLite数据库集成到Java应用。首先,需要将驱动程序添加到Java项目的classpath以确保可以正确加载。然后,可以使用Java代码建立与数据库的连接,执行SQL查询和更新操作,并处理结果集。 与其他关系型数据库一样,使用SQLite时需要编写合适的SQL语句来创建表格、插入数据、更新数据或查询数据。通过JDBC API,可以将这些SQL语句传递给SQLite数据库进行执行,并获得相应的结果。 SQLite具有轻量级、快速、易于使用等优势,适用于小型项目和嵌入式应用,而Java作为一种广泛使用的编程语言,与SQLite结合使用可以实现数据的持久化、数据操作和数据分析等功能。SQLite Java JDBC v356提供了一个稳定可靠的接口,方便我们在Java程序使用SQLite数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值