mysql转sqlite3实战+部署sqlite3应用

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介: mysql转sqlite3实战+部署sqlite3应用


场景

最近维护一个嵌入式设备的java应用,由于内存有限,需要压缩内存,考虑到之前用的是mysql,需要对mysql替换,使用轻量的sqlite3。今天就记录下走过的坑。

mysql脚本转sqlite3

1.新建个sqlite3的文件并使用navicat连接

选择新建,然后找个目录新建个 .db或者.sqlite的文件,建个连接。

准备好mysql并连接上

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

使用navicat数据传输

传输完后,设置主键自增

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

最下面的自动递增勾选上。其他表一样。

修改应用程序

1.添加sqlite3的驱动包

<!-- sqlite3 驱动包 -->
        <dependency>
            <groupId>org.xerial</groupId>
            <artifactId>sqlite-jdbc</artifactId>
        </dependency>

这里没加版本,因为springboot自带版本,可以查看下:

这里使用的是 <sqlite-jdbc.version>3.28.0</sqlite-jdbc.version>这个版本。

2.修改sqlite3的jdbc连接配置文件

用的若依框架,这里直接设置驱动和url,不需要设置用户名和密码

3.全局替换Date类型字段为String类型

将代码中的所有的Date类型替换为String类型。因为sqlite3数据库没有时间类型,数据库存储的是TEXT类型。

以下面的代码举例:

4.全局替换 sql文件中的 date()等函数

本人使用的是mybatis,在xml中的一些sql带有sysdate()等一些时间函数转成:datetime('now','localtime'),

不加now显示的不是当地时间,因为我们是东八区,所以应该显示这个时间。

5.检查其他工具或者类型不匹配的问题

有些时间转换的 比如计算时间的间隔,由date转为string再计算。这里不举例了。报错的话,自己再具体解决。

将sqlite3的数据库导出成sql文件2

在sqlite3命令行中。2种方式进入sqlite3终端。

我使用第一种:

进入sqlite3的数据库文件夹下:

sqlite3 edgemgmt3.db .dump > edgemgmt.sql

导出数据为sql文件:

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

可以看到一大堆的表

在服务器上安装sqlite3环境并导入sql文件

sqlite3 edgemgmt3.db < edgemgmt-sqlite3.sql

测试

用navicat或者命令去查看即可。



大功告成!!

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
8月前
|
关系型数据库 MySQL 分布式数据库
安全可靠的PolarDB V2.0 (兼容MySQL)产品能力及应用场景
PolarDB分布式轻量版采用软件输出方式,能够部署在您的自主环境中。PolarDB分布式轻量版保留并承载了云原生数据库PolarDB分布式版技术团队深厚的内核优化成果,在保持高性能的同时,显著降低成本。
682 140
|
6月前
|
SQL 监控 关系型数据库
MySQL事务处理:ACID特性与实战应用
本文深入解析了MySQL事务处理机制及ACID特性,通过银行转账、批量操作等实际案例展示了事务的应用技巧,并提供了性能优化方案。内容涵盖事务操作、一致性保障、并发控制、持久性机制、分布式事务及最佳实践,助力开发者构建高可靠数据库系统。
|
5月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
826 4
|
7月前
|
存储 关系型数据库 MySQL
MYSQL数据加密压缩函数应用实战指南。
总的来说,加密和压缩是维护MySQL数据库中数据安全性和效率的有效手段。使用时需权衡性能与安全,合理应用加密和压缩函数。在设计数据库架构时要考虑到加密字段的查询性能,因为加密可能使得一些索引失效。压缩数据能有效减少存储空间的占用,但在服务器负载较高时应避免实时压缩和解压,以免影响总体性能。
227 10
|
6月前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
519 0
|
7月前
|
关系型数据库 MySQL 数据库
为什么 MySQL 不推荐用 Docker 部署?
本文探讨了MySQL是否适合容器化的问题,分析了Docker容器在数据安全、性能瓶颈、状态管理及资源隔离等方面的挑战,并指出目前主流分布式数据库如TDSQL和OceanBase仍倾向于部署在物理机或KVM上。
354 0
|
10月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
501 41
|
10月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
630 17
|
10月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
298 18
|
10月前
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
300 10

推荐镜像

更多