shilang / bp4mybatis

my best practice for MyBatis. 个人针对 MyBatis 的最佳实践

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

bp4mybatis

my best practice for MyBatis.

个人针对 MyBatis 的最佳实践。

我经历过很多公司与项目,现在很多公司在选择架构时都喜欢MyBatis,因为相对于Hibernate来说, MyBatis比较轻量级。而且无论是QBC的Criteria,或者是HQL,相对于原生sql都需要一定的学习成本。 因此大部分公司可能都倾向于Hibernate和Mybatis混用。Hibernate用于增删改和简单查询,Mybatis用于 多表关联的复杂查询。

我在一家公司担任架构师时,ORM框架选择了Mybatis,但是针对它进行了一定程度的封装。此处放出的版本是单独 针对本项目提取的部分,不含业务逻辑(除了少量演示逻辑),主要是展示了我自己理解的最佳实践的原则,如下几点:

  1. 精简代码
    • 不存在的代码才是好代码,自动生成的是烂代码(MyBatis Generator
    • 封装底层代码,从而消除DAO层
  2. 尽量封装面向对象的操作
    • 封装面向对象的级别操作,使得一般的增删改无需编写sql语句
  3. 数据操作机制化
    • 新增/修改日期,创建/修改人员等统一底层写入
    • 数据过滤策略注入,减少针对不同角色的写的分支代码。以及研发人员疏漏造成数据权限控制疏漏。

PS:针对上面的数据操作机制化的特性,还会涉及到RBAC权限模型的一些设计。

本项目只能当作一种最佳实践方法,并非单纯组件。可以考虑参考并抽取形成自己的封装。 主要涉及的开源组件:spring boot、pagehelper、log4j2。

About

my best practice for MyBatis. 个人针对 MyBatis 的最佳实践

License:MIT License


Languages

Language:Java 100.0%