Spring 学习笔记《集成 MyBatis-Plus》
发布日期:2021-06-30 14:59:16 浏览次数:2 分类:技术文章

本文共 3295 字,大约阅读时间需要 10 分钟。

Spring 学习笔记《集成 MyBatis-Plus》

简介

简称MP ,顺便吐槽下总感觉是MMP的简称。其实还有一个很吸引人的地方就是中国作者,中文文档看起来会比较友好。官网写的特性有点多,我只列一下我比较喜欢的:

  • 内置通用 Mapper、通用 Service,提供了条件构造器
  • 支持 XML 热加载
  • 支持 ActiveRecord 模式
  • 提供代码生成器插件。可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎
  • 内置分页插件
  • 其它

吐槽

MP自称并不仅仅是通用mapper,但大多数教程都在介绍通用的CRUD接口,官网也一样。对于自定义代码生成一带而过。

我本人找到MP只要是因为MyBatis Generator不能生成自定义SQL
既然主旨是只做增强不做改变对官网的MyBatis Generator是不是也应该做战略性的兼容,以使用户可以平滑过渡到MP上来。
比如:

  • 那几个基础的增删改查的命名与MyBatis Generator或支持自定义(严格的来说MP是支持的)
  • 自定生成代码的模板,默认提供一套MyBatis Generator风格的实现(只要简单的增删改查即可)

如此原本使用MyBatis Generator的项目也可以直接换用MP

我的疑问是:以mybatis-plus-generator为核心业务,通过提供默认模板的方式实现通用Mapper不是更好吗?


今天是 2019-06-19我尝试使用目前官方推荐的3.1.1搞得各种报错,启动不了。烦躁的很。退回2.3.3继续在这里插入图片描述


配置

SSM集成MyBatis-Plus很简单只要两步

1、添加依赖

/ssm/pom.xml

...	
com.baomidou
mybatis-plus
2.3.3
...
  • 注意下JDK的版本,如果选择v3.0+请使用JDK8
    在这里插入图片描述

2、MybatisSqlSessionFactoryBean 从 Mybatis 的换成 Mybatis-Plus 的

如果全局配置不生效,注意检查MP版本是否对了。我这里主要是设置了主键策略,详见

/ssm/src/main/resources/spring-mybatis.xml

注意 v2.0+v3.0+MybatisSqlSessionFactoryBean 位置有所不同

  • MyBatis-Plus v2.0+
...
  • MyBatis-Plus v3.0+
...

用法

PoemMapper继承 com.baomidou.mybatisplus.mapper.BaseMapper 就可以使用通用查询功能了

/ssm/src/main/java/com/jerry/ssm/mapper/PoemMapper.java

package com.jerry.ssm.mapper;import com.baomidou.mybatisplus.mapper.BaseMapper;import com.jerry.ssm.entity.Poem;public interface PoemMapper extends BaseMapper
{
}

测试

/ssm/src/test/java/com/jerry/ssm/mapper/PoemMapperTest.java

package com.jerry.ssm.mapper;import java.util.List;import javax.annotation.Resource;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import com.jerry.ssm.entity.Poem;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = {
"classpath:applicationContext.xml"})public class PoemMapperTest{
@Resource private PoemMapper poemMapper; @Test public void selectListTest() {
List
poemList = poemMapper.selectList(null); for (Poem poem : poemList) {
System.out.println(poem); } }}

输出结果:

{	"author":"笑虾",	"content":"

多情黯叹痴情癫,痴情苦笑多情难。

相思自古无良药,从来独步赴黄泉。一壶泪,暗淡醇香味。

化作万樽与谁对?

忧举杯,乐举杯,地老天荒只一醉。

欲哭时,男儿无泪。

千般相思苦。

杯中汇...

", "id":2, "title":"爱云说"}{ "author":"笨笨", "content":"

天使只是别处的凡人,神仙不过他山的妖怪。

大家好,我是笨笨,笨笨的笨,笨笨的笨,谢谢!

", "id":3, "title":"他山的妖怪"}{ "author":"笨笨", "content":"666啊", "id":4, "title":"poem"}{ "author":"笨笨", "content":"666啊", "id":5, "title":"poem"}{ "author":"笨笨", "content":"

天使只是别处的凡人,神仙不过他山的妖怪。

大家好,我是笨笨,笨笨的笨,笨笨的笨,谢谢!

", "id":6, "title":"他山的妖怪"}{ "author":"笨笨", "content":"

天使只是别处的凡人,神仙不过他山的妖怪。

大家好,我是笨笨,笨笨的笨,笨笨的笨,谢谢!

", "id":7, "title":"他山的妖怪"}

冲突问题

如果莫名出翔可能是冲突了,MP依赖里有这两个,Maven会自动获取。如果之前有手动添加,就注释掉试试。

org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
${mybatis-spring.version}

参考资料

&

转载地址:https://jerryjin.blog.csdn.net/article/details/90724408 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:SpringMVC + JUnit4 单元测试
下一篇:Gitee 码云 - 创建代码仓库

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月23日 17时58分12秒