ModelBuilder里的labelNames和types为什么要多一位?

@JFinal

波总,为什么ModelBuilder的这两个数组要多第一个默认的空值呢?有啥含义呢?

3B6A80C3-3D79-41bf-99EC-BAEA1995AD28.png


评论区

JFinal

2020-04-22 21:32

因为从 JDBC 的 ResultSet 中读取数据是从序号为 1 开始的,注意看你截图中代码的 for( int i=1 ...) 这个地方的 i 是从 1 开始的

如果数组不多出一个 1 来,那么如果 for 循环的 i 从 0 开始,你得在 rs.getXxx 时加 1,例如:
value = rs.getObject( i + 1);

如果 for 循环的 i 从 1 开始,你得在 if 判断的 types 数组减去一个 1,例如:
if ( types[ i - 1] ...)

总之,无法去除加法或者减法动作。jfinal 的设计是用空间换时间,省去了加、减操作,提升性能

ModelBuilder 这个方法内部是热点代码,优化是有意义的。

jfinal 极度关注性能,比传统 web + orm + template 组合框架性能高太多了:
https://www.oschina.net/news/90815/jfinal-3-3
https://www.oschina.net/news/112156/enjoy-4-8-released

风满楼

2020-04-24 09:06

@JFinal 太细了......

JFinal

2020-04-24 12:19

@风满楼 jfinal 高品质迭代 9 年,值得拥有

热门反馈

扫码入社