本文共 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() { ListpoemList = 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!