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/

相关推荐
Java爱好狂.3 小时前
Java初学者如何一周速通SpringBoot!
java·spring boot·后端·spring·高并发·架构师·java面试
马良神笔5 小时前
2026 年Rag最近技术前沿总结
后端·python·django
程序猿DD5 小时前
同样10美元,OpenDesign和Command Code的DeepSeek V4.1 Flash额度到底有多少?
后端
高频因子挖掘机5 小时前
A股量化从日线升级到5分钟线:数据量增加后最先暴露哪些工程问题?
后端·github·api
高频因子挖掘机6 小时前
历史行情返回顺序变了,为什么按行号计算指标很危险?
后端·github·api
团子哒哒7 小时前
数组、切片和Map
后端
专注仿真7 小时前
ThinkPHP6 API接口开发实例:从零搭建RESTful风格接口
后端·php·restful
开心猴爷8 小时前
应对iOS审核4.3:可以使用 IpaGuard 来给属性名混淆的技术细节与平衡之道
后端·ios
1m555555558 小时前
RAG 工程实战(五):正确知识已经进入 Prompt,为什么大模型还是会答错?
后端·面试
易小尊8 小时前
我的模型在 65% 以上时准得可怕,在 50% 时像在掷硬币
后端