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/

相关推荐
不光头强3 小时前
spring cloud知识总结
后端·spring·spring cloud
GetcharZp6 小时前
告别 Python 依赖!用 LangChainGo 打造高性能大模型应用,Go 程序员必看!
后端
阿里加多7 小时前
第 4 章:Go 线程模型——GMP 深度解析
java·开发语言·后端·golang
小小李程序员7 小时前
Langchain4j工具调用获取不到ThreadLocal
java·后端·ai
GreenTea9 小时前
AI Agent 评测的下半场:从方法论到落地实践
前端·人工智能·后端
我是若尘10 小时前
Harness Engineering:2026 年 AI 编程的核心战场
前端·后端·程序员
一 乐10 小时前
物流信息管理|基于springboot + vue物流信息管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·物流信息管理系统