springboot-mybatis-plus集成篇

前言

MyBatis 最佳搭档,只做增强不做改变,为简化开发、提高效率而生。

简单用例

UserMapper.java

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

User.java

java 复制代码
@TableName(value = "user")
public class User implements Serializable {
    @TableId
    private int id;
    private String name;
    private int age;
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

UserRepository.java

java 复制代码
@Repository
public class UserRepository extends ServiceImpl<UserMapper, User> {
}

UserMapper.xml

xml 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.czy.mybatis.mapper.UserMapper">

</mapper>

application.yml

yml 复制代码
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    password: xxxx
    username: xxx
    url: jdbc:mysql://xxxxx/mybatis?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
mybatis-plus:
  mapper-locations: classpath:./mapper/*Mapper.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true

ApplicationTest.java

java 复制代码
@SpringBootTest(classes = Application.class)
public class ApplicationTest {
    @Autowired
    UserRepository userRepository;

    @Autowired
    UserMapper userMapper;

    // mybatisPlus 提供两种方式与数据库交互
    // 第一种: 延用mybatisMapper的方式进行数据交互
    // 第二种: mybatis-plus提供ServiceImpl实现类,相关的Repository继承ServiceImpl类,使用lambda的语法构造条件进行增删改查,
    // 还可以使用AbstractWrapper条件构造器进行条件增删改查
    
    // 这是通过继承ServiceImpl类
    @Test
    public void test1() {
        List<User> users = userRepository.lambdaQuery().eq(User::getId, 1).list();
        users.forEach(System.out::println);
    }
    // 这是通过mybatis Mapper的形式查询
    @Test
    public void test2() {
        User user = userMapper.selectById(1);
        System.out.println(user);
    }
}

用上mybatis-plus,你会发现mybatis-plus会提供自带的相关增删改查方法;

例如ServiceImpl提供saveBatch、saveOrUpdateBatch、updateBatchById、getOne、getOneOpt、removeById、updateById等相关方法

BaseMapper提供insert、deleteById、updateById、selectById等相关方法

具体相关使用可以参考mybatis-plus官网:https://baomidou.com/introduce/

相关推荐
weixin_545019325 小时前
微信小程序智能商城系统(uniapp+Springboot后端+vue管理端)
spring boot·微信小程序·uni-app
IsPrisoner5 小时前
Go语言安装proto并且使用gRPC服务(2025最新WINDOWS系统)
开发语言·后端·golang
tan180°6 小时前
Linux进程信号处理(26)
linux·c++·vscode·后端·信号处理
一只码代码的章鱼6 小时前
Spring的 @Validate注解详细分析
前端·spring boot·算法
有梦想的攻城狮7 小时前
spring中的@MapperScan注解详解
java·后端·spring·mapperscan
柚个朵朵8 小时前
Spring的Validation,这是一套基于注解的权限校验框架
java·后端·spring
程序员小杰@8 小时前
【MCP教程系列】SpringBoot 搭建基于 Spring AI 的 SSE 模式 MCP 服务
人工智能·spring boot·spring
程序员buddha8 小时前
Spring & Spring Boot 常用注解整理
java·spring boot·spring
Asus.Blogs9 小时前
为什么go语言中返回的指针类型,不需要用*取值(解引用),就可以直接赋值呢?
开发语言·后端·golang