前言

java操作数据库的一些配置文件请点击这里点这里跳转

本文仅记录一些心得和遇到的问题及解决办法


一、心得

1.sqlite数据库本身

sqlite是一个很轻量级的数据库,暂未发现HTTP连接的方式,一般的做法是放在IDEA中的resources目录下,保证数据跟着项目走,因为一般是做嵌入式的数据库.

但是java的项目嘛,就多环境配置了多个路径,这里写了两个配置文件地址,只有URL的区别

只要运行系统上有sqlite引擎就可以了.

sqlite的sql和其他关系型数据库sql格式大多一样,只有方言和一些命令不太一样,这个直接照抄百度即可

sqlite数据库本身也挺特殊,它内部我所知道的只支持4种数据类型

我所用的全都是text,其中没有时间格式,这也会引出下面的问题!

datasource:type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: org.sqlite.JDBCurl: jdbc:sqlite:/opt/sqlite3/db/test.db#url: jdbc:sqlite:D:/sqlite/test.dbdruid:# ?????initialSize: 5
#      # ???????minIdle: 10
#      # ???????maxActive: 20validation-query: SELECT 1testOnBorrow: truetest-on-return: trueuse-unfair-lock: trueremove-abandoned: trueremove-abandoned-timeout: 1800log-abandoned: falsepool-prepared-statements: falsemax-pool-prepared-statement-per-connection-size: -1

二.遇到的问题

1.driverClassName: org.sqlite.JDBC,这个JDBC的版本问题,我之前从网上抄的版本是3.7.0,出现了很严重的bug,在修改完IP地址之后,内部JDBC连接status字段直接错乱,所有的sql都会报错,纯纯的JDBC连接挂掉了,只能靠重启恢复,多方求解也无法搞定,后来发现问题出现在JDBC上,去Maven找了版本,找了个较新的3.28.0才最终解决问题

2.JDBC和持久层框架Mabatis在windows和linux上不同的支持,这个也是很蛋疼的问题,在windows上运行sql好好的,但是上了linux就报错,我个人的理解是JDBC和Mabatis配合,在Windows环境上可以自动将日期字符串"2022-10-10 19:19:19"转换为Date格式,也就是你的实体类中Date类型字段的Setter方法的传入参数为Date类型即可,代码如下

private Date createTime;
//windows环境
public void setCreateTime(Date createTime) {this.createTime = createTime;
}//Linux环境
public void setCreateTime(String createTime){SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try {this.createTime = simpleDateFormat.parse(createTime);} catch (ParseException e) {e.printStackTrace();}}

Linux上就无法自动转换,需要将Setter方法的入参改为String类型,这个和数据库的存储类型有直接关系,Sqlite支持字符串存储,不支持时间戳

3.方言的问题也挺麻烦,我在IDEA上配置了专门的Sqlite数据源,但是并不能识别方案,写在sql里的方法代码都会标红

<dependency>
    <groupId>com.zsoltfabok</groupId>
    <artifactId>sqlite-dialect</artifactId>
    <version>1.0</version>
</dependency>

这里提供一个sqlite方言库,我引入试了,没成功,好像是maven找不到包


总结

记一次遇到的坑和困扰了一天的问题

Java操作sqlite3数据库心得(一)相关推荐

  1. java 读取mysql数据库_原生Java操作mysql数据库过程解析

    这篇文章主要介绍了原生Java操作mysql数据库过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.引入数据库驱动的jar包 以通过mav ...

  2. Java操作Access数据库使用方法及案例 及 所需jar包【源码及jar包在最后下载】

    目录 写在前面 数据库编辑软件MDBplus.exe SQL查询语句的差异 字符串转数字 字符串转日期 示例:如下图打开SQL编辑窗口 源码及jar包下载地址 写在前面 最近接了一个项目,就是个简单的 ...

  3. Java操作MongoDB数据库CRUD(增删查改)

    Java操作MongoDB数据库CRUD(增删查改) 借助mongo-java-driver包,对MongoDB数据库的集合(DataTable)及文档(BSON对象数据)进行增删查改操作.本文的核心 ...

  4. java操作derby,Java操作Derby数据库

    Java操作Derby数据库 Java操作Derby数据库 一.下载安装及配置 1.从Apache 官网 下载自己本机对应的Java版本的Derby压缩包 2.解压到自定义目录 3.配置环境变量 3. ...

  5. Golang操作sqlite3数据库教程

    Golang操作sqlite3数据库教程 本文介绍sqlite数据库,如何使用sqlite3包操作轻量级关系型数据库. sqlite概述 sqlite是嵌入式关系型数据库引擎,官方描述为自包含的.无服 ...

  6. JAVA操作MYSQL数据库

    通过com.mysql.cj.jdbc.Driver来实现操作MYSQL数据库: package database;import java.sql.Connection; import java.sq ...

  7. java操作mysql数据库实例_jdbc操作mysql数据库实例

    本文实例讲述了jdbc操作mysql数据库的方法.分享给大家供大家参考.具体如下: import java.sql.*; import java.sql.drivermanager; import j ...

  8. Java操作MongoDB数据库(简明版)

    除了通过启动 mongo 进程进如 Shell 环境访问数据库外,MongoDB 还提供了其他基于编程语言的访问数据库方法.MongoDB 官方提供了 Java 和 Python 语言的驱动包,利用这 ...

  9. java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)

    插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和服 ...

  10. 图数据库(二):Java操作图数据库

    在上篇文章中,我们介绍了什么是Neo4j,什么是Cypher以及Neo4j的使用,今天我们学习一下如何使用Java操作Neo4j图数据库. Cypher查询 在使用Java操作Neo4j之前,我们先了 ...

最新文章

  1. socket传输结构体,c++,发送OK,recv返回字节大小正确但接受数据为空
  2. 基于TCP的Socket通讯
  3. 计算机辅助初中数学教学,初中数学合作教学如何融入计算机辅助教学
  4. javascript学习系列(13):数组中的concat方法
  5. Reddit热议被引最多的机器学习论文:上世纪LSTM称霸,何恺明今年被引1.8w居首...
  6. Linux学习总结(22)——CentOS7.2安装Nginx
  7. poj-3185-开关问题
  8. Flex 4 的ComboBox下拉框滚动条Scroller(VerticalScrollBar)的thumb过小问题的解决
  9. freeswitch的dialplan中condition变量
  10. 190703每日一句
  11. html让一行文字在两行,css单行两行文本自适应问题
  12. html评分图标,Bootstrap图标实现移动端的星星评分功能
  13. ElasticSearch之QueryDSL查询语法
  14. 设置 无线网 连接到服务器未响应,设置无线路由器显示服务器未响应
  15. Java虚拟机栈和本地方法栈
  16. 专家建议将“元宇宙”更名为“元网络”或“灵境网络” 回归本质 规范发展
  17. 昆明新迎万枫、菏泽希尔顿花园酒店​开业;万豪在华运营酒店超过400家 | 中国酒店周刊...
  18. 基于LBS的六边形热力图算法
  19. (小白都能听懂)的海明校验码
  20. matlab降噪报告,基于matlab主动降噪实验.docx

热门文章

  1. android 微信图片动画,一款仿微信图片加载,微博图片加载,视频加载时的进度view...
  2. 混乱的代码是技术债吗
  3. Go语言自学系列 | 高效golang开发
  4. 5G赋能新文旅 巡天遥看一千河
  5. 字节跳动AI lab计算机视觉实习生面试教训
  6. 南京商品住宅全装修新政:毛坯、装修价格分别备案
  7. 硅谷火爆的云原生,你会玩吗?
  8. 如何清空各种浏览器缓存
  9. OCR营业执照识别助力工商信息智能注册
  10. IDM+百度网盘提速下载复活版