SpringDataJpa相比Mybatis,开发效率比较高
具体在以下几点
- 自动生成建表语句
- 根据方法名来解析生成单表的查询sql 不需要写sql
- 自动生成join关联语句
Mybaits 相比SpringDataJpa的优势 主要是学习起来简单 没有一堆的概念需要学 好上手 可以直接看到sql
Mybatis有一个代码生成器 mybatis generator http://www.mybatis.org/generator/
可以生成通用的crud方法
另外使用example 也可以生成类似于SpringDataJpa的查询sql
mybatis generator的使用并没有那么方便
- 需要建表 需要配置一个xml文件 每加一张表需要配置下
- 数据库添加减少字段 重新生成时 会覆盖mapper接口文件
- 自动生成的方法不能定制 example用起来很麻烦
- 不能生成join
如何解决以上问题 提升mybatis的开发效率
写建表语句太麻烦 写java类简单 需要能直接从java类生成建表语句
配置mybatis generator的xml 麻烦 一键从数据库表生成代码
表增加或减少字段后不应该覆盖接口 而是合并 不改变手动加的接口方法
使用example太麻烦 mybatis一键从方法名生成sql
mybatis一键生成join查询 并且在数据库加减字段后保持相应变化
只需要一个IDEA插件 https://github.com/gejun123456/MyBatisCodeHelper-Pro 就解决了上面所有问题
- 从java类生成建表语句
![8f2007b54da4a0bf8938eeccdc336a30.gif](https://i-blog.csdnimg.cn/blog_migrate/7aab5496d25290059621029ae420d617.gif)
从java类生成建表语句.gif
- 直接从表生成crud代码 加减字段后 合并接口和sql 可定制生成的方法 生成service等
![4eaaa39b4e8c87403dd277a942748417.gif](https://i-blog.csdnimg.cn/blog_migrate/12c358b86bdd7c87d4db1bf862759d6c.gif)
- 数据库生成和合并代码.gif
- 一键从方法名来生成sql 使用了通用mapper和mybatisplus也可以生成 下面是部分生成演示
![a14a8c8e090939e87ecc5037c76d2d40.gif](https://i-blog.csdnimg.cn/blog_migrate/b850f377c8a6f2e1c18fe4922ac982a3.gif)
- 一键从方法名生成sql.gif
- 2.5版本可一键生成两张表的join查询
![8ef19c19ec68ee9f25b622f8a6a3f462.gif](https://i-blog.csdnimg.cn/blog_migrate/dd4b5e6b5d1125440adfca7302f189d8.gif)
- 一键生成两张表关联的join.gif
以上只是插件的部分功能
插件还有其他一系列功能
- 从xml快速测试sql是否有误
- mybatis标签识别 如 set where include trim等 在这些标签后的sql 也可以智能补全
- 一键生成testcase 快速测试写好的的sql
- mybaits xml 自动补全和检测 几乎所有的标签都有自动补全
- mybatis spring支持 typealias支持
- 一键从sql语句导出resultMap和java类
- 一键生成分页查询