一个让MyBatis使用提高100倍效率的开源框架引擎

公众号程序猿DD

共 1662字,需浏览 4分钟

 ·

2022-05-11 00:52

今天给大家介绍一个框架引擎,可能会让你在使用MyBatis时的效率提高个、十、百,对,提高100倍这么多!

Bean Searcher

Bean Searcher是一个专注高级查询的只读ORM,天生支持联表,免 DTO/VO 转换,只要使用得当,一行代码实现复杂列表检索将会成为可能,不再是梦想~

截止目前为止,Bean Searcher主要支持的特点有:

  • 支持 实体多表映射
  • 支持 动态字段运算符
  • 支持 分组聚合 查询
  • 支持 Select | Where | From 子查询
  • 支持 实体类嵌入参数
  • 支持 字段转换器
  • 支持 Sql 拦截器
  • 支持 数据库 Dialect 扩展
  • 支持 多数据源 与 动态数据源
  • 支持 注解缺省 与 自定义
  • 支持 字段运算符 扩展

其架构图详解如下:

更简单直接的说,Bean Searcher就是一个轻量级的数据库条件检索引擎,其作用是从已有的数据库表中检索数据,最终目的是为了减少后端模板代码的开发,极大提高开发效率,节省开发时间。

当然,TJ君的理解是,Bean Searcher并不是单纯的为了替换MyBatis,而是在最合适它的场景下让用户的使用更便捷更高效。

例如一些非事务性的动态检索场景,就是非常适合Bean Searcher的发挥,就好比管理后台的用户管理等检索场景,实际运作中是不会向数据库中插入数据的,并且其检索条件是动态的,用户检索方式不同,执行的SQL也不同,就比较适合Bean Searcher了。

如果小伙伴再深入使用一段时间,除了之前说的那些特点,你会发现Bean Searcher可能还有这些优点:

  • 极速开发

轻松实现高级查询,且无需 DTO/VO 转换, 极大提高后端研发效率

  • 集成简单

可以和任意 Java Web 框架集成,如:SpringBoot、Grails、Jfinal 等

  • 扩展性强

面向接口设计,用户可自定义扩展 Bean Searcher 中的任何组件

  • 支持 注解缺省

约定优于配置,可省略注解,可复用原有域类,同时支持自定义注解

  • 支持 Select 指定字段 同一个实体类,可指定只 Select 其中的某些字段,或排除某些字段

  • 支持 参数过滤器

支持添加多个参数过滤器,可自定义参数过滤规则

  • 支持 字段转换器

支持添加多个字段转换器,可自定义数据库字段到实体类字段的转换规则

  • 支持 SQL 拦截器

支持添加多个 SQL 拦截器,可自定义 SQL 生成规则

最后,我们可以看下Bean Searcher 最简单的一行代码示例:

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private BeanSearcher searcher;               // 注入 Bean Searcher 的检索器

    @GetMapping("/index")
    public SearchResult index(HttpServletRequest request) {
        // 只一行代码,实现包含 分页、组合过滤、任意字段排序、甚至统计、多表联查的 复杂检索功能
        return searcher.search(User.classMapUtils.flat(request.getParameterMap()));
    }

}

觉得不错的小伙伴,不妨来试试看哦!

另外,我们将之前发过的各种项目及工具进行了整理,收录到了GitHub项目,欢迎各位小伙伴光临Star,地址如下:https://github.com/Wechat-TJ/TJ-WORLD-FORU


点击下方卡片,关注公众号“TJ君

回复“BS2022”,获取仓库地址

关注我,每天了解一个牛x、好用、有趣的东东


往期推荐

浏览 66
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报