【MyBatisPlus】快速入门、常用注解、常用配置


🐌个人主页: 🐌 叶落闲庭

💨我的专栏:💨
c语言
数据结构
javaEE
操作系统
Redis

石可破也,而不可夺坚;丹可磨也,而不可夺赤。


MyBatisPlus

  • 一、快速入门
    • [1.1 引入MyBatisPlus起步依赖](#1.1 引入MyBatisPlus起步依赖)
    • [1.2 自定义的Mapper继承MyBatisPlus的BaseMapper接口](#1.2 自定义的Mapper继承MyBatisPlus的BaseMapper接口)
    • [1.3 对比Mybatis](#1.3 对比Mybatis)
    • [1.4 MyBatisPlus的增删改查方法](#1.4 MyBatisPlus的增删改查方法)
  • 二、MyBatisPlus常用注解
    • [2.1 MyBatisPlus常用注解如下](#2.1 MyBatisPlus常用注解如下)
  • 三、MyBatisPlus常用配置

一、快速入门

MyBatisPlus官方提供了starter,其中集成了Mybatis和MybatisPlus的所有功能,并且实现了自动装配效果。

1.1 引入MyBatisPlus起步依赖

xml 复制代码
<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-boot-starter</artifactId>
  <version>3.4.2</version>
</dependency>

1.2 自定义的Mapper继承MyBatisPlus的BaseMapper接口

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

1.3 对比Mybatis

  • 要操作的数据库表结构:
sql 复制代码
create table user
(
    id      int not null primary key,
    account int null
);
  • Mybatis的UserMapper.java:
java 复制代码
public interface UserMapper {
    int insert(User row);

    int insertSelective(User row);

    User selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(User row);

    int updateByPrimaryKey(User row);
}
  • Mybatis的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.demo.mapper.UserMapper">
  <resultMap id="BaseResultMap" type="com.demo.po.User">
  </resultMap>
  <sql id="Base_Column_List">
    id, account
  </sql>
  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    select 
    <include refid="Base_Column_List" />
    from user
    where id = #{id,jdbcType=INTEGER}
  </select>
  <insert id="insert" parameterType="com.demo.po.User">
    insert into user (id, account)
    values (#{id,jdbcType=INTEGER}, #{account,jdbcType=INTEGER})
  </insert>
  <insert id="insertSelective" parameterType="com.demo.po.User">
    insert into user
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="id != null">
        id,
      </if>
      <if test="account != null">
        account,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="id != null">
        #{id,jdbcType=INTEGER},
      </if>
      <if test="account != null">
        #{account,jdbcType=INTEGER},
      </if>
    </trim>
  </insert>
  <update id="updateByPrimaryKeySelective" parameterType="com.demo.po.User">
    update user
    <set>
      <if test="account != null">
        account = #{account,jdbcType=INTEGER},
      </if>
    </set>
    where id = #{id,jdbcType=INTEGER}
  </update>
  <update id="updateByPrimaryKey" parameterType="com.demo.po.User">
    update user
    set account = #{account,jdbcType=INTEGER}
    where id = #{id,jdbcType=INTEGER}
  </update>
</mapper>
  • MyBatisPlus只需UserMapper.java继承 BaseMapper<>即可:
java 复制代码
public interface UserMapper extends BaseMapper<User> {
}

1.4 MyBatisPlus的增删改查方法

java 复制代码
@SpringBootTest
class DemoApplicationTests {

    @Autowired
    private UserMapper userMapper;

    @Test
    void testInsert() {
        User user = new User();
        user.setId(5);
        user.setAccount(2000);
        userMapper.insert(user);
    }

    @Test
    void testSelectById() {
        User user = userMapper.selectById(5);
        System.out.println(user);
    }

    @Test
    void testUpdateById() {
        User user = new User();
        user.setId(5);
        user.setAccount(8000);
        userMapper.updateById(user);
    }

    @Test
    void testDeleteById() {
        userMapper.deleteById(5);
    }

}

二、MyBatisPlus常用注解

MyBatisPlus:通过扫描实体类,并基于反射获取实体类信息作为数据库表信息。

  • 类名驼峰转下划线作为表名
  • 名为id的字段作为主键
  • 变量名驼峰转下划线作为表的字段名

2.1 MyBatisPlus常用注解如下

  • @TableName:用来指定表名
  • @TableId:用来指定表中的主键字段信息
  • @TableFiled:用来指定表中的普通字段信息

MyBatisPlus官网:https://www.baomidou.com/pages/223848/#tablename






三、MyBatisPlus常用配置

MyBatisPlus中的配置大都是默认配置好的,我们使用的时候基本不用修改大量的配置,除非遇到特殊的情况需要设置一些配置,可以参考MyBatisPlus的官方文档进行修改。

yaml 复制代码
mybatis-plus:
  type-aliases-package: com.demo.po
  mapper-locations: classpath*:mapper/**/*.xml  # 默认
  global-config:
    db-config:
      id-type: auto # id类型自增长




相关推荐
A_aspectJ14 分钟前
Java开发的学习优势:稳定基石与多元可能并存的技术赛道
java·开发语言
云烟成雨TD15 分钟前
Spring AI Alibaba 1.x 系列【36】FlowAgent 和 BaseAgent 抽象类
java·人工智能·spring
qq_2837200516 分钟前
Python 模块精讲:collections —— 高级数据结构深度解析(defaultdict、Counter、deque)
java·开发语言
乐嘉明38 分钟前
在线堆文件分析功能
java·ai
青槿吖39 分钟前
第二篇:从复制粘贴到自定义规则!Spring Cloud Gateway 断言 + 过滤全玩法,拿捏微服务流量管控
java·spring boot·后端·spring cloud·微服务·云原生·架构
SamDeepThinking44 分钟前
C端多渠道用户体系设计:从需求到落地
java·后端·架构
天若有情6731 小时前
反向封神!C++ 全局单例不避反用,实现无锁多线程函数独占访问
java·javascript·c++
凤凰院凶涛QAQ1 小时前
《C++转JAVA快速入手系列》:基本通用语法篇
java·开发语言·c++
千寻girling1 小时前
机器学习 | 逻辑回归 | 尚硅谷学习
java·人工智能·python·学习·算法·机器学习·逻辑回归
Javatutouhouduan1 小时前
阿里2026最新Java面试核心讲(终极版)
java·java面试·java并发·后端开发·java程序员·java八股文·java性能优化