前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Springboot与MybatisPlus整合与使用

Springboot与MybatisPlus整合与使用

原创
作者头像
奇怪的Java
发布2023-12-06 11:57:54
3040
发布2023-12-06 11:57:54
举报
文章被收录于专栏:随心写Java

Mybatis-plus

MyBatis-Plus是MyBatis框架的一个扩展库,它提供了一系列方便的API和工具,可以简化常见的数据库操作。

url:https://baomidou.com/pages/24112f/

MyBatis-Plus的优点:

  • 提高开发效率:MyBatis-Plus提供了代码生成、分页、查询构建等功能,可以帮助开发人员快速开发数据库相关的功能。
  • 简化操作:MyBatis-Plus提供了一些常用的API和工具,可以简化CRUD操作、批量操作等常见的数据库操作。
  • 提高代码可读性:MyBatis-Plus提供了一些Lambda表达式的API,可以使代码更加简洁易读。

框架结构

MyBatis-Plus的主要API

  • QueryWrapper:用于构建查询条件。
  • UpdateWrapper:用于构建更新条件。
  • LambdaQueryWrapper:用于构建Lambda表达式查询条件。
  • LambdaUpdateWrapper:用于构建Lambda表达式更新条件。
  • Page:用于分页查询。
  • EntityWrapper:用于根据实体类属性构建查询条件。

Springboot与MybatisPlus整合

导入starter依赖

代码语言:html
复制
<!-- Mybatis-plus依赖 --> 
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>版本号</version>
</dependency>
<!-- 测试依赖 --> 
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter-test</artifactId>
    <version>版本号</version>
</dependency>

注意:如果项目中已经存在mybatis依赖,在使用mybatis-plus的时候需要把mybatis依赖注释或删除。

配置数据源相关信息(application.properties、yml、yaml)

代码语言:text
复制
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/数据库名?serverTimezone=Asia/Shanghai
spring.datasource.druid.username=账号
spring.datasource.druid.password=密码
# resource中Mapper映射文件目录
mybatis-plus.mapper-locations=classpath*:mapper/*Mapper.xml
# 实体类(采用全限定名)
mybatis-plus.type-aliases-package=com.fs.user.entity

mybatis-plus映射接口

代码语言:java
复制
@Mapper
@Repository
public interface UserMapper extends BaseMapper<User> {
}

核心:在于Dao接口继承BaseMapper的接口,BaseMappe接口中帮助开发者预定了若干个常用的API接口,简化了通用API接口的开发工作。

mybatis-plus常用注解

@TableName

自定义表名注解,该注解写在实体类上

默认情况下,如果数据库表是使用标准的下划线命名,并且能对应上实体类的类名,我们就不需要特别去手动匹配。比如有张 user_info 表,那么会自动匹配下面这个实体类:

代码语言:java
复制
@Data
public class UserInfo {
    private Integer id;
    private String userName;
    private String passWord;
}
@TableId(type = IdType.AUTO)

主键注解,AUTO表示自增

  • IdType:
@TableField

非主键注解,可自定义列名

代码语言:java
复制
@TableName("sys_user")
public class User {
    @TableId(type = IdType.AUTO)
    private Long id;
    @TableField("nickname")
    private String name;
    private Integer age;
    private String email;
}
@OrderBy

内置 SQL 默认指定排序,优先级低于 wrapper 条件查询

@MybatisPlusTest

mybatis-plus测试注解

代码语言:java
复制
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;

import static org.assertj.core.api.Assertions.assertThat;

@MybatisPlusTest
class MybatisPlusSampleTest {
    // 将SampleMapper交给Spring(即配置bean)
    @Autowired
    private SampleMapper sampleMapper;

    @Test
    void testInsert() {
        Sample sample = new Sample();
        sampleMapper.insert(sample);
        assertThat(sample.getId()).isNotNull();
    }
}

表名其他配置

如果数据库的表名定义规则是tb_模块名称(tb_user),为了能和实体类相对应。

代码语言:text
复制
mybatis-plus.global-config.db-config.table-prefix=tb_

注意:@TableName和该配置同时存在时会优先使用@TableName

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Mybatis-plus
  • MyBatis-Plus的优点:
  • 框架结构
  • MyBatis-Plus的主要API
  • Springboot与MybatisPlus整合
    • 导入starter依赖
      • 配置数据源相关信息(application.properties、yml、yaml)
        • mybatis-plus映射接口
          • mybatis-plus常用注解
            • @TableName
            • @TableId(type = IdType.AUTO)
            • @TableField
            • @OrderBy
            • @MybatisPlusTest
          • 表名其他配置
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档