🐌个人主页: 🐌 叶落闲庭
💨我的专栏:💨
c语言
数据结构
javaEE
操作系统
Redis
石可破也,而不可夺坚;丹可磨也,而不可夺赤。
MyBatisPlus
- 一、快速入门
- 1.1 引入MyBatisPlus起步依赖
- 1.2 自定义的Mapper继承MyBatisPlus的BaseMapper接口
- 1.3 对比Mybatis
- 1.4 MyBatisPlus的增删改查方法
- 二、MyBatisPlus常用注解
- 2.1 MyBatisPlus常用注解如下
- 三、MyBatisPlus常用配置
一、快速入门
MyBatisPlus官方提供了starter,其中集成了Mybatis和MybatisPlus的所有功能,并且实现了自动装配效果。
1.1 引入MyBatisPlus起步依赖
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version>
</dependency>
1.2 自定义的Mapper继承MyBatisPlus的BaseMapper接口
public interface UserMapper extends BaseMapper<User> {
}
1.3 对比Mybatis
- 要操作的数据库表结构:
create table user
(id int not null primary key,account int null
);
- Mybatis的UserMapper.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 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 userwhere 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 userset account = #{account,jdbcType=INTEGER}where id = #{id,jdbcType=INTEGER}</update>
</mapper>
- MyBatisPlus只需UserMapper.java继承 BaseMapper<>即可:
public interface UserMapper extends BaseMapper<User> {
}
1.4 MyBatisPlus的增删改查方法
@SpringBootTest
class DemoApplicationTests {@Autowiredprivate UserMapper userMapper;@Testvoid testInsert() {User user = new User();user.setId(5);user.setAccount(2000);userMapper.insert(user);}@Testvoid testSelectById() {User user = userMapper.selectById(5);System.out.println(user);}@Testvoid testUpdateById() {User user = new User();user.setId(5);user.setAccount(8000);userMapper.updateById(user);}@Testvoid testDeleteById() {userMapper.deleteById(5);}}
二、MyBatisPlus常用注解
MyBatisPlus:通过扫描实体类,并基于反射获取实体类信息作为数据库表信息。
- 类名驼峰转下划线作为表名
- 名为id的字段作为主键
- 变量名驼峰转下划线作为表的字段名
2.1 MyBatisPlus常用注解如下
- @TableName:用来指定表名
- @TableId:用来指定表中的主键字段信息
- @TableFiled:用来指定表中的普通字段信息
MyBatisPlus官网:https://www.baomidou.com/pages/223848/#tablename
三、MyBatisPlus常用配置
MyBatisPlus中的配置大都是默认配置好的,我们使用的时候基本不用修改大量的配置,除非遇到特殊的情况需要设置一些配置,可以参考MyBatisPlus的官方文档进行修改。
mybatis-plus:type-aliases-package: com.demo.pomapper-locations: classpath*:mapper/**/*.xml # 默认global-config:db-config:id-type: auto # id类型自增长