请问jFinal的Db+Record模式中的Record是否可以理解为一个ResultSet?

无敌小辣椒 发布于 2015/07/09 09:44
阅读 1K+
收藏 0
请问jFinal的Db+Record模式中的Record是否可以理解为一个ResultSet? 看了jFinal的部分源码,发现Record是根据Resultset来的,而且ResultSet貌似完全能代替Record,这样子,为何还要封装一下呢?@JFinal
加载中
1
糊搞

首先,ResultSet的生命周期是与JDBC操作相关的,如果Statement和Connection要得到释放,ResultSet首先得释放。就凭这一点,Model或Record就不能由它封装而来。

其次,由ResultSet封装而来,不需要的接口就暴露给了开发者,让开发者疑惑。

再次,由设计原则来说,ResultSet这种只是JDBC环节中的一个类,引入到JFinal中并不合适。

无敌小辣椒
无敌小辣椒
谢谢,解答得很详细^_^
1
JFinal
JFinal

      每个 Record 对象唯一对应数据库表中的一条记录,并且 Record 提供了一些常用的方法便于读取字段数据。

     Record 类相当于一个通用的数据库查询结果容器。虽然 ResultSet 在某种程度上也可以读取出数据表中的数据,但它需要 Connection在开启时才可以读取,在读取出数据之前需要一直占用连接,在代码层面来说它会抛出异常,需要对它try catch,并且读完数据以后还要resultSet.clse()以前connection.close(),在具体使用时候的代码是让人无法接受的。

李文文
李文文
回复 @Enzoooooo : 最近也有这个疑问,用的1.9。相同的功能record里面叫getColumnValues()。model里面叫getAttrValues()。而且model里面自带了paginate。基本我较多用的model。
Enzoooooo
Enzoooooo
record对象和泛型有什么区别于联系吗?比如list<model>与list<record>
糊搞
@JFinal
无敌小辣椒
无敌小辣椒
理解了,我想得过于片面了,从JFinal中学到很多,谢谢
返回顶部
顶部