🐌个人主页: 🐌 叶落闲庭
💨我的专栏:💨
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 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<>即可:
public interface UserMapper extends BaseMapper<User> {
}
1.4 MyBatisPlus的增删改查方法
@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的官方文档进行修改。
mybatis-plus:
type-aliases-package: com.demo.po
mapper-locations: classpath*:mapper/**/*.xml # 默认
global-config:
db-config:
id-type: auto # id类型自增长