相关推荐recommended
SpringBoot整合SQLite(详细讲解)
作者:mmseoamin日期:2024-02-28

一、SQLite是什么

SQLite是一个不需要服务、不需要配置、不需要外部依赖的开源SQL数据库引起。

  • 不需要服务器:如MySQL安装后,会在操作系统中创建一个进程mysqld.exe,而SQLite不需要创建。
  • 不需要配置:如MySQL安装后,需要配置端口、用户名、密码等,而SQLite不需要,它是存储在磁盘上的文件,不需要安装。
  • 不需要外部依赖:SQLite是自给自足的,不需要任何外部的依赖。

    二、SQLite优点

    1. sqlite支持MySQL拥有的大多数功能。
    2. 允许多个进程\线程安全访问,支持事务机制。
    3. 允许多门开发语言调用,支持JDBC。
    4. 支持Windows、Linux等多个操作系统上运行。

    三、SpringBoot整合SQLite

    准备工作

    1.创建一个文件(后缀名为.db)

    【建议】将这个文件夹放到项目所在的目录。

    这个文件的相当于MySQL中创建一个库。

    以下是我创建的文件,

    SpringBoot整合SQLite(详细讲解),第1张

    2.使用IDEA连接

    SpringBoot整合SQLite(详细讲解),第2张

    SpringBoot整合SQLite(详细讲解),第3张SpringBoot整合SQLite(详细讲解),第4张

    显示这个就是连接成功了。

    3.创建表

    SpringBoot整合SQLite(详细讲解),第5张

    SpringBoot整合SQLite(详细讲解),第6张

    整合

    1.导入依赖

            
            
                org.xerial
                sqlite-jdbc
                3.34.0 
            
            
                org.springframework.boot
                spring-boot-starter-jdbc
            
    
            
            
                mysql
                mysql-connector-java
                8.0.31
            
            
                com.alibaba
                druid-spring-boot-starter
                1.2.9
            

    2.配置文件

    spring:
      datasource:
        druid:
          login-timeout: 30000
        dynamic:
          primary: sqlite
          datasource:
            mysql:
              driver-class-name: com.mysql.cj.jdbc.Driver
              url: jdbc:mysql://localhost:3306/xxx?serverTimezone=UTC
              username: 
              password: 
            sqlite:
              url: jdbc:sqlite:D:\xxx\user.db
              driver-class-name: org.sqlite.JDBC
    mybatis-plus:
      configuration:
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
        cache-enabled: true
        map-underscore-to-camel-case: false
      global-config:
        db-config:
          logic-delete-field: isDeleted  # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
          logic-delete-value: 1 # 逻辑已删除值(默认为 1)
          logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

    解释

    SpringBoot整合SQLite(详细讲解),第7张

    3.代码

    我刚才创建的表有三个字段,id、name、age

    实体类
    @TableName(value ="user")
    @Data
    public class User implements Serializable {
        /**
         * 
         */
        private Integer id;
        /**
         * 
         */
        private String name;
        /**
         * 
         */
        private Integer age;
        @TableField(exist = false)
        private static final long serialVersionUID = 1L;
    }
    mapper层
    @Mapper
    public interface UserMapper extends BaseMapper {
    }
    Service层
    public interface UserService extends IService {
    }
    实现类impl
    @Service
    public class UserServiceImpl extends ServiceImpl
        implements UserService {
    }
    控制层
    @RestController
    @RequestMapping("/user")
    public class UserController {
        @Resource
        private UserService userService;
        @GetMapping("/getAll")
        public List getAll() {
            return userService.list();
        }
    }

    展示结果

    SpringBoot整合SQLite(详细讲解),第8张

    以上我们就整合完了,写了一个小小的demo。希望能够帮助到你。

    欢迎各位伙伴批评指正,谢谢。