jfinal在做一些大型项目上,也是写全sql吗

有考虑加入jpa的一些类似特性吗?

波总对jpa的看法是怎么样的

评论区

linuxea

2017-09-22 10:21

对对对。全是 sql 虽然是极薄封装。但是现在代码的可读性与维护性在一定性能条件的损失下是更加重要的。
参考现在众多的 jpa 实现。Hibernate,mybatis等。

JFinal

2017-09-22 10:25

数据库是非常成熟的软件产品,而数据库厂商提供给你使用数据库的唯一方式就是通过 sql 语句

无论类似于 jpa、hibernate、mybatis 这类的框架如何纷繁复杂,在它们的底层仍然是用的 sql 去操作数据库

而其中 mybatis 的价值观是 jfinal 最认同的,也就是回归 sql 本质去操作数据库。所以 jfinal 的 active record 插件,尽可能贴近 sql 去做事情,例如查询、分页这些全是直接写 sql

当然,为了便利性,对于单表的 save、delete、update 这些操作,jfinal 提供了面象对象的 API,不需要手写 sql,例如: user.setName(...).update();

而对于复杂查询,必须要 sql 才能将数据库的功能发挥得淋漓尽致

JFinal

2017-09-22 10:26

回望一下 jpa 与 hibernate,如果你面对的是一个极为复杂的关联查询,你仍然得回归到写 sql 这件事情上,无可避免

linuxea

2017-09-22 10:27

Hibernate 太重了。不过现在 jfinal3.0 有 sql 抽象出来的模板,再加以适当的参数填充。感觉也是很不错的。避免了重要撰写大量重复的sql 语句。以前这部分工作是需要自己手动撰写。

JFinal

2017-09-22 10:29

@linuxea @kyytyp jfinal 有 sql 管理功能, sql 不必写在 java 代码中,而且拼接用的模板引擎,极度便捷,看一下 jfinal 手册有关 sql 管理功能的那一章就知道了

linuxea

2017-09-22 10:34