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/

相关推荐
Ray667 分钟前
单例模式
后端
用户8356290780518 分钟前
掌控PDF页面:使用Python轻松实现添加与删除
后端·python
无责任此方_修行中14 分钟前
谁动了我的数据?一个 Bug 背后的“一行代码”真凶
后端·node.js·debug
sg_knight19 分钟前
Spring Cloud与RabbitMQ深度集成:从入门到生产级实战
java·spring boot·spring·spring cloud·消息队列·rabbitmq·stream
用户479492835691533 分钟前
面试官:讲讲2FA 双因素认证原理
前端·后端·安全
疯狂的程序猴34 分钟前
移动端H5网页远程调试:WEINRE、Charles与Genymotion完整指南
后端
爱好学习的青年人1 小时前
一文详解Go语言字符串
开发语言·后端·golang
Chan161 小时前
批处理优化:从稳定性、性能、数据一致性、健壮性、可观测性五大维度,优化批量操作
java·spring boot·后端·性能优化·java-ee·intellij-idea·优化
Rexi1 小时前
Go.mod版本号规则:语义化版本
后端
Ray661 小时前
guide-rpc-framework vs Dubbo 实现
后端