SpringBoot整合SQLite(详细讲解)

SpringBoot整合SQLite(详细讲解)

一、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中创建一个库。

以下是我创建的文件,

2.使用IDEA连接

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

3.创建表

整合

1.导入依赖

        <!-- SQLite JDBC Driver -->
        <dependency>
            <groupId>org.xerial</groupId>
            <artifactId>sqlite-jdbc</artifactId>
            <version>3.34.0</version> <!-- Use the latest version -->
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>




        <!-- mysql JDBC Driver -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.31</version>
        </dependency>
        <dependency>
            <groupId>***.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.9</version>
        </dependency>

2.配置文件

spring:
  datasource:
    druid:
      login-timeout: 30000
    dynamic:
      primary: sqlite
      datasource:
        mysql:
          driver-class-name: ***.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)

解释

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<User> {

}
Service层
public interface UserService extends IService<User> {

}
实现类impl
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User>
    implements UserService {

}
控制层
@RestController
@RequestMapping("/user")
public class UserController {
    @Resource
    private UserService userService;

    @GetMapping("/getAll")
    public List<User> getAll() {
        return userService.list();
    }
}

展示结果

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

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

转载请说明出处内容投诉
CSS教程_站长资源网 » SpringBoot整合SQLite(详细讲解)

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买