为什么不用Hibernate,MyBatis

最后更新:2023-09-29 10:01:28 | 状态:未完成
  1. 构造SQL太麻烦
    如生成个IN的查询条件,要先取值,再判断是否为空,是多个值还是一个值,再遍历,经常要在XML中配置SQL,遇到不同的数据库时SQL语法还可能不一样
    这些机械的操作,不应该浪费开发人员的时间,应该只提供个参数能说明要实现什么就可以,
    如query("CRM_USER", condition("TYPE_ID:[type]"))
    表示要查CRM_USER这个表
    从request中取type的值,如果有值的话生成TYPE_ID IN(?,?,?)
    剩下的交给机器去作,遇到特殊情况再动用开发人员设置更多参数
  2. 没用的类和文件太多
    项目初期可能每个service dao mapping xml 各种o都需要,
    但到了后期,需要大量的向用户展示数据时,特别是用户自定义报表、查询条件时,以上说的这些都用不到了,
    一是因为太多
    不可能为每个报表都来这么一套,会有非常多的报表基础数据是一样的,只需要查询出来后格式化一下。比如行列转换、根据不同的维度聚合分组等
    二是因为动态
    遇到用户自定义时,就不是多不多的问题了,是硬编码根本没法实现,只能用一些动态结构,最常用的也就是List<Map>结构了

  3. 有用的功能实体类上没有
    查询出结查集后经常需要一些数学计算,而实体上类基本上也就几个注解和get/set,在计算时完全就是个摆设。
    特别是上一步说到的List<Map>结构,注解都没地方加。
    一些常见的数学计算如分组、行列转换、平均值、方差标准差等,如果求和的话是不是应该用个sum方法
    难道又要各种遍历各种判断?还是Lambda?说起Lambda不得不说这就是java设计败笔的一个补丁。既弱又不直观。
最近更新 搜索 提交