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/

相关推荐
涡能增压发动积13 分钟前
一起来学 Langgraph [第一节]
后端
一只爱撸猫的程序猿28 分钟前
构建一个简单的智能文档问答系统实例
数据库·spring boot·aigc
ruokkk33 分钟前
重启Eureka集群中的节点,对已经注册的服务有什么影响
后端
一线大码39 分钟前
项目中怎么确定线程池的大小
java·后端
LNin43 分钟前
Spring AI 自定义数据库持久化的ChatMemory
后端
crud1 小时前
Spring Boot 3 整合 Swagger:打造现代化 API 文档系统(附完整代码 + 高级配置 + 最佳实践)
java·spring boot·swagger
天天摸鱼的java工程师1 小时前
从被测试小姐姐追着怼到运维小哥点赞:我在项目管理系统的 MySQL 优化实战
java·后端·mysql
专注VB编程开发20年1 小时前
asp.net mvc如何简化控制器逻辑
后端·asp.net·mvc
用户6757049885021 小时前
告别数据库瓶颈!用这个技巧让你的程序跑得飞快!
后端