mybatisplus使⽤函数_mybatis-plus,减少⼀半以上SQL语句
的框架,你⽤过吗?
mybatis
Mybatis 是⼀款优秀的持久层框架,它⽀持定制化 SQL、存储过程以及⾼级映射。MyBatis 避免了⼏乎所有的 JDBC 代码和⼿动设置参数以及获取结果集。MyBatis 可以使⽤简单的 XML 或注解来配置和映射原⽣信息,将接⼝和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
但mybatis有个让我⽐较头疼的⼀个问题是sql⼯作量很⼤,尤其是字段多的时候。虽然说单表的增删改查操作可以通过mybatis
generator⼯具来⽣成(或者⾃⼰写模板⼯具⽣成),但项⽬开发的过程中总免不了要新添加新字段,这些⼯具就帮不了我了,我得把新字段写到原来的所有增删改查的sql中。这是个痛苦的过程,特别是当你重复了很多次之后。
mybatis的单表操作也是贼⿇烦的事,因为筛选的条件可能会各种各样,所以你不得不写很多动态sql来兼容查询条件,这也让我不能集中精⼒去处理业务。
每当这时候,我怀念Hibernate了。嘿嘿,Hibernate加字段就贼简单,单表操作也是贼⽅便。但我依然不喜欢⽤Hibernate,哈哈。mybatis-plus
⽽mybatis-plus这样⼀个框架,⼀种集mybatis与hibernate的优点⼀起的框架。它提供了hibernate的单表CRUD操作的⽅便同时,⼜保留了mybatis的特性。
jfinal增删改查先来看看官⽅怎么解释mybatis-plus的:
Mybatis-Plus(简称MP)是⼀个Mybatis的增强⼯具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提⾼效率⽽⽣。
我们的愿景是成为Mybatis最好的搭档,就像 Contra Game 中的1P、2P,基友搭配,效率翻倍。
带问题去学习,请思考
mybatis-plus怎么实现单表URUD操作?
mybatis-plus的底层实现原理是什么?
mybatis-plus与其他同类框架如mybatis helper有很什么优势?
如何集成mybatis-plus快速搭建⼀个spring boot项⽬。
特性
从上图可以看出,mybatis-plus不仅仅封装了基本的CRUD操作,还内置了防SQL注⼊操作、常⽤的分页插件,还有我最喜欢的ActiveRecord模式。
⽤过jfinal的⼈应该都知道ActiveRecord是啥。Active Record 是⼀种数据访问设计模式,它可以帮助你实现数据对象Object到关系数据库的映射。
常⽤实体注解
MP通过ORM模式封装了常⽤的CRUD操作,⾃然少不了实体注解,先来看看都有哪些注解
其中实体⽆注解化设置可以如下处理:
当数据库的表字段名是驼峰命名时⽆需注解处理。
或者全局配置: 下划线命名 dbColumnUnderline 设置 true , ⼤写 isCapitalMode 设置 true
但其实我压根就没管过⼿写过这些注解,使⽤mp代码⽣成器⾃动⽣成主体后直接覆盖原来的就⾏了,减少⼈⼯的失误,⽅便快捷。⾄于@Version与@KeySequence这两个注解,貌似我还真没⽤过。嘿嘿。。。
简化 CRUD
前⾯已经说了mp已经简化了mybatis的单表基本操作,先来看看。
相⽐两种写法,我更喜欢ActiveRecord的模式写法,因为我不⽤注⼊userMapper,new了⼀个对象之后直接调⽤⽅法操作就⾏了。复杂的查询也很简单,新建⼀个EntityWrapper作为查询对象,Wrapper接⼝封装了很多常⽤的⽅法。⼏乎sql能写出来的条件调⽤
Wrapper的⽅法就能表现出来。
架构原理
参考答案略。
不过我建议你去mp官⽹或者这⾥看看,哈哈 -> mybatis-plus 实践及架构原理.pdf
mybatis plus代码⽣成器 与 mybatis generator
说起mybatis plus代码⽣成器的代码,我记得以前这这篇⽂章中介绍过
开源项⽬spring-shiro-training思维导图,让项⽬不再难懂
现在再拿来⽤下哈。原理其实很简单,定义好velocity模板(当然你也可以⾃定义),然后传参数渲染模板⽣成对应的⽂件。
我建议你⽣成的位置最好不要直接覆盖原来的⽂件,你可能已经有过修改,直接覆盖的话会导致丢失。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论