https://github.com/mybatis/mybatis-dynamic-sql
    新团队用 Mybatis XML Mapper 方式操作数据库,我着实有些恐惧和痛苦。虽然七八年前我也是非常熟练,但用惯了 Spring Data Repository 类似方式,实在不想回去了,然后就找到了 mybatis-dynamic-sql,类似 JOOQ 的 DSL 写法,基本满足了需要,心理感觉好多了。

    只是为什么要用它呢?团队成员会问,我也会问。我的预感告诉我确定无疑 mybatis-dynamic-sql Over XML Mapper,就像多年前 Convention Over Configuration,Java Config Over XML Config.

    1. 类型安全,方便系统重构,增强信心。
      2. 代码精简,少了一层 XML ,直接对应Java,减少心智。
      3. 复用不是 XML 的 refid ,直接变量或函数,更加自然,减少心智,增强信心。
      4. 是 Java DSL 而非 XML,想象一下两种语言都不会的时候,学习哪种开心。
      5. 其实 Join 还好,也可以配合 JOOQ,或者为啥不直接用 Data Repository 呢,性能又不是问题。

    技术氛围的营造不仅靠技术,还要靠勇气!