码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • mysql转sqlite3实战+部署sqlite3应用


    文章目录

      • 场景
        • mysql脚本转sqlite3
        • 1.新建个sqlite3的文件并使用navicat连接
        • 准备好mysql并连接上
        • 使用navicat数据传输
        • 传输完后,设置主键自增
      • 修改应用程序
        • 1.添加sqlite3的驱动包
        • 2.修改sqlite3的jdbc连接配置文件
        • 3.全局替换Date类型字段为String类型
        • 4.全局替换 sql文件中的 date()等函数
        • 5.检查其他工具或者类型不匹配的问题
      • 将sqlite3的数据库导出成sql文件2
      • 在服务器上安装sqlite3环境并导入sql文件
      • 测试
      • 用navicat或者命令去查看即可。

    场景

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

    mysql脚本转sqlite3

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

    选择新建,然后找个目录新建个 .db或者.sqlite的文件,建个连接。
    在这里插入图片描述

    在这里插入图片描述

    准备好mysql并连接上

    在这里插入图片描述
    我的是这个egemtmt-init的mysql数据库

    使用navicat数据传输

    在这里插入图片描述
    在这里插入图片描述

    传输完后,设置主键自增

    这里有个问题,就是mysql原来主键自增的字段,传输给sqlite3数据库后发现主键没自增。需要检查下自增的字段,然后勾选上。
    在这里插入图片描述
    最下面的自动递增勾选上。其他表一样。

    修改应用程序

    1.添加sqlite3的驱动包

      
            
                org.xerial
                sqlite-jdbc
            
    
    • 1
    • 2
    • 3
    • 4
    • 5

    这里没加版本,因为springboot自带版本,可以查看下:
    在这里插入图片描述
    这里使用的是 3.28.0这个版本。

    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或者命令去查看即可。

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

    在这里插入图片描述


    大功告成!!

  • 相关阅读:
    Python自定义可切片的类
    SANSAN每周新鲜事|OPC UA 数据采集,你真的了解吗?
    win10系统的应用商店不见了怎么安装回来
    【JAVA】excel读取常见问题(涉及格式:xls、xlsx)
    Oracle故障案例 | 19C动态监听无法注册实例的处理
    java泛型场景补充注意事项
    [Golang] GO 语言工作环境的基本概念
    framework watchdog
    事件总线 EventBus
    Pygame开发一个打字游戏
  • 原文地址:https://blog.csdn.net/baidu_21349635/article/details/128012853
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号