使用Mybatis-Plus,以及sqlite的使用

文章目录

目标

  • 在原有的项目基础上使用MybatisPlus
  • 将h2数据库换位sqlite

MybatisPlus是什么

  • MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
  • 只做增强不做改变:引入它不会对现有 MyBatis 工程产生影响
  • 简化开发:只需简单配置,即可快速进行单表 CRUD 操作
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅通过少量配置即可实现单表大部分 CRUD 操作
  • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
  • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器)
  • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作

在原有的项目基础上使用MybatisPlus

替换依赖

将mybatis的依赖替换为mybatis-plus的依赖,替换代码如下:

pom 复制代码
<!--<dependency>-->
<!--    <groupId>org.mybatis.spring.boot</groupId>-->
<!--    <artifactId>mybatis-spring-boot-starter</artifactId>-->
<!--    <version>2.3.1</version>-->
<!--</dependency>-->

<!-- MyBatis-Plus Starter -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.1</version>
</dependency>

替换配置文件

在yml中将mybatis的配置替换为mybatis-plus的配置,替换代码如下:

yml 复制代码
#mybatis:
#  mapper-locations: classpath:mapper/*.xml
#  type-aliases-package: com.xbdx.demo111.entity

mybatis-plus:
  configuration:
    # 日志实现
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    # 驼峰命名转换
    map-underscore-to-camel-case: true
  global-config:
    db-config:
      # 主键类型
      id-type: auto
      # 逻辑删除配置
      logic-delete-field: deleted
      logic-delete-value: 1
      logic-not-delete-value: 0
  # mapper.xml 文件位置
  mapper-locations: classpath*:/mapper/**/*.xml

修改entity

在类前面加入表名,指明操作哪张表

java 复制代码
@TableName("users")

修改mapper

在类名后面添加需要继承的BaseMapper,并且传入泛型User

java 复制代码
 extends BaseMapper<User>

修改service

在接口的类名后面添加需要继承的IService,并且传入泛型User

java 复制代码
 extends IService<User>

在实现类的类名后面添加需要继承的ServiceImpl,并且传入泛型UserMapper, User

java 复制代码
 extends ServiceImpl<UserMapper, User>

修改controller

在类中加入如下方法,传入一个已经存在数据的id

java 复制代码
@GetMapping("/getOne")
public void getOne() {
    User user = userService.getById(2);
    System.out.println("单个用户查询成功");
    System.out.println(user.getName() + " " + user.getAge());
}

我们在浏览器输入/getOne路径,查看结果

将h2数据库换位sqlite

更换依赖

将h2的依赖替换为sqlite的依赖,替换代码如下:

pom 复制代码
<!--<dependency>-->
<!--      <groupId>com.h2database</groupId>-->
<!--      <artifactId>h2</artifactId>-->
<!--      <version>2.1.214</version>-->
<!--</dependency>-->

<!-- SQLite JDBC 驱动 -->
<dependency>
    <groupId>org.xerial</groupId>
    <artifactId>sqlite-jdbc</artifactId>
    <version>3.32.3.2</version>
</dependency>

修改配置文件

将h2的配置替换为sqlite的配置,注释h2控制台配置,替换代码如下:

yml 复制代码
#  datasource:
#    url: jdbc:h2:file:D:/aaa/testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=MySQL
#    username: sa
#    password:
#    driver-class-name: org.h2.Driver
  datasource:
    url: jdbc:sqlite:test.db
    driver-class-name: org.sqlite.JDBC
    username:
    password:
  sql:
    init:
      mode: always
      schema-locations: classpath:schema.sql

#  # H2 控制台配置(开发环境启用)
#  h2:
#    console:
#      enabled: true
#      path: /h2-console

修改schema.sql

有一些细微的差别需要修改,不然会报错,替换代码如下:

sql 复制代码
-- CREATE TABLE IF NOT EXISTS users (
--     id INT PRIMARY KEY AUTO_INCREMENT,
--     name VARCHAR(50),
--     age INT
-- );

CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name VARCHAR(50),
    age INTEGER
);

测试正常

经过测试,展示结果一模一样,没有任何变化,说明数据库更改成功。

总结

本文主要说明了如何在原有的项目上,加入mybatis-plus,以及将原来数据库进行更换,原来的数据库为h2数据库。

相关推荐
4311媒体网10 分钟前
C语言操作符全解析 C语言操作符详解
java·c语言·jvm
繁华落尽,寻一世真情11 分钟前
【基于 AI 的智能小说创作助手】MuMuAINovel-sqlite 基于 AI 的智能小说创作助手
数据库·人工智能·sqlite
czlczl2002092531 分钟前
缓存穿透问题与解决方案
缓存·mybatis
猫头虎10 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
wgslucky10 小时前
jdk17 配置jvm参数中gc的日志及控制日志数量和大小
jvm·gc·-xlog
程序员侠客行11 小时前
Mybatis连接池实现及池化模式
java·后端·架构·mybatis
痴儿哈哈15 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
老毛肚16 小时前
手写mybatis
java·数据库·mybatis
ggabb17 小时前
中国文化速记清单.地名与母亲河.文化名人与经典
sqlite
野犬寒鸦20 小时前
从零起步学习并发编程 || 第七章:ThreadLocal深层解析及常见问题解决方案
java·服务器·开发语言·jvm·后端·学习