“动态生成 SQL 代码真的就是一场噩梦”吗?

问个问题:mybatic官网说“在 Java 代码中动态生成 SQL 代码真的就是一场噩梦”。 spring使用的是mybatis或jooq,请求数据时把一个sql拆分成.select(selectSql).from(fromSql).where(whereSql)...这种在调试的时候不会很麻烦吗?优势在哪里? 目前我们工作环境用的框架是jfinal,其中数据库访问工具是Db,一般是直接写Db.find(full-sql)返回record来操作,一般full-sql是根据业务动态生成的,在调试的时候通过断点可以清晰的看到与复制完整的sql,然后拷贝到数据库编辑器中去优化或者定位错误,个人感觉还是蛮方便的,为什么说是“噩梦”呢?

评论区

久伴轻尘

2021-04-27 17:28

在java代码中写sql本身就是噩梦,推荐使用Db.template

TommyLemon

2021-04-28 17:34

因为 Mybatis 不这么做。以前看不起注解等非手写 SQL 的方式,现在它不也加上各种简单增删改查的注解了?

腾讯 APIJSON 就是动态生成 SQL 才实现了后端零代码 ORM 库,目前 1W+ Star。
🏆 腾讯内外四个奖项、腾讯开源五个第一 🚀 后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构
https://jfinal.com/share/2405

糊搞

2021-04-29 11:24

@TommyLemon 如果不是与SQL有关的API适用这个APIJSON工具么?

TommyLemon

2021-04-29 12:11

@糊搞 不适合,用其它方式。APIJSON 与其它各种框架、库都良好兼容