详细学习请移步mybatis plus官网:https://mp.baomidou.com/guide/
无论是新创建的项目还是旧项目从mybatis升级为mybatis plus,因为mybatis plus只做增强,不会对现有项目做任何入侵、耦合。即引入或升级mybatis plus之后,可以按照mybatis运行,可以完全不使用mybatis plus任何功能。
同样的,这个无侵入性还表现在。Mybatis能用的插件,Mybatis Plus也不会对其做任何更改, 比如PageHelper之类的。毕竟Mybatis Plus只是在Mybatis基础上蒙了一层。
引入jar包
最新的版本可以在官网或github主页中查询.
github主页:https://github.com/baomidou/mybatis-plus
普通项目引用:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.3.2</version> <!--可以选择目前最新的版本-->
</dependency>
springboot项目引用:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1</version> <!--可以引用最新的版本-->
</dependency>
如果引入Mybatis Plus之后,有其他依赖包中的Mybatis版本冲突,可参照排除jar包冲突的的文章:https://blog.csdn.net/weixin_41381863/article/details/90042220
配置Mybatis Plus
Mybatis Plus不作入侵,其实现依旧是Mybatis,其配置即是Mybatis的配置。参考:https://blog.csdn.net/weixin_41381863/article/details/87893134
SpringBoot配置:
在springboot中的配置和mybatis在springboot中的配置类似,只是将mybatis的声明改为Mybatis Plus的声明即可。
示例:
# 声明 mapper文件的路径
mybatis-plus.mapper-locations=classpath:mapper/*.xml
# 声明mybatis特性配置文件的路径。没有mybatis的独立配置则没有此项
mybatis-plus.config-location=classpath:mybatis-config.xml
使用
开启Mybatis Plus功能只需要2步。详细功能参考:https://mp.baomidou.com/guide/
第一步:mapper接口继承BaseMapper<T>
// 泛型UserEntity是持久化对象.
public interface UserMapper extends BaseMapper<UserEntity> {
// 这里的方法是自定义的查询方法
UserEntity getById(@Param("id")String id);
}
第二步:配置持久化对象的映射关系
@TableName注解指定持久化对象对应的数据表。value属性值是表名
@TableId注解指明数据表主键。value属性值是字段名
@TableField注解指明数据表字段。value属性值是字段名
@TableName(value = "tb_user")
public class UserEntity {
@TableId(value = "id_")
private String id;
@TableField(value = "is_delete_")
private Boolean isDelete;
@TableField(value = "name_")
private String name;
// 省略其它属性和get/set方法
}
接下来就可以愉快的进行增删改查了。
运行测试:
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest {
@Autowired
private UserMapper userMapper;
// 自定义查询
@Test
public void getByIdTest() {
UserEntity userEntity = userMapper.getById("userId");
System.out.println(JSONObject.toJSONString(userEntity));
}
// Mybatis Plus查询
@Test
public void methodA() {
UserEntity userEntity = userMapper.selectById("userId");
System.out.println(JSONObject.toJSONString(userEntity));
}
}
Mybatis Plus用起来真的香,效率提升杠杠的,还减少了不少SQL错误的bug。