最近维护一个嵌入式设备的java应用,由于内存有限,需要压缩内存,考虑到之前用的是mysql,需要对mysql替换,使用轻量的sqlite3。今天就记录下走过的坑。
选择新建,然后找个目录新建个 .db或者.sqlite的文件,建个连接。



我的是这个egemtmt-init的mysql数据库


这里有个问题,就是mysql原来主键自增的字段,传输给sqlite3数据库后发现主键没自增。需要检查下自增的字段,然后勾选上。

最下面的自动递增勾选上。其他表一样。
org.xerial
sqlite-jdbc
这里没加版本,因为springboot自带版本,可以查看下:

这里使用的是 这个版本。

用的若依框架,这里直接设置驱动和url,不需要设置用户名和密码
将代码中的所有的Date类型替换为String类型。因为sqlite3数据库没有时间类型,数据库存储的是TEXT类型。
以下面的代码举例:

本人使用的是mybatis,在xml中的一些sql带有sysdate()等一些时间函数转成:datetime('now','localtime'),
不加now显示的不是当地时间,因为我们是东八区,所以应该显示这个时间。
有些时间转换的 比如计算时间的间隔,由date转为string再计算。这里不举例了。报错的话,自己再具体解决。
在sqlite3命令行中。2种方式进入sqlite3终端。

我使用第一种:
进入sqlite3的数据库文件夹下:
sqlite3 edgemgmt3.db .dump > edgemgmt.sql

导出数据为sql文件:
您可以在命令提示符中使用 SQLite .dump 点命令来导出完整的数据库在一个文本文件中,如下所示:


可以看到一大堆的表

sqlite3 edgemgmt3.db < edgemgmt-sqlite3.sql
开通了个微信公众号:
搜索: 怒放de每一天
后续可能不定时推送相关文章,期待和大家一起成长!!

大功告成!!