2017-05-25 18:12
3.0 版本中的 Model.getSql(key) 方法内部传入 this.attrs 的用法,完全可以被 3.1 版本的下面方法来代替:
SqlPara sqlPara = Model.getSqlPara(key, this);
在查询的时候这样:
model.find(sqlPara);
所以升级的改动其实很小,而且必然可以升级,就是添加一个 this 参,然后 String 接收参数改为 SqlPara 接收参数,查询时直接扔 SqlPara 对象进去
而老版本 3.0 得到的是一个 String 型的 sql,在查询的时候这样仍然要传入参数:
model.find(sql, p1, p2, ..., pn);
可见老版本的用法并不比新版本简洁,新版本的 getSqlPara 方法功能还更加灵活强大,见下面的说明
新版本的用法有如下好处:
1:避免了 find(sql, p1, p2, ..., pn) 时传参,而是直接在 getSqlPara 时传参,因为在 getSqlPara 时传参功能更加灵活与强大,例如支持 #para(int) 的用法
2:避免了 dao 对象的线程安全问题
3:避免 Model、Db 中的 getSql(...) 系列方法数量的膨胀
4:还有其它一些好处,刚刚被一些事情打断,一时忘记了
2017-05-25 14:21
@要输就输给追求 新版本的 cos 不仅可以支持 input 的 name 重复,而且支持上传的文件是有序的,而且在上传文件长度超过范围时抛出 ExceededSizeException,便于应用程序中捕获处理
2017-05-25 14:19
@要输就输给追求 这个不需要在 jfinal 3.1 中解决,而是要在 cos 这个第三方中解决,刚刚已经更新了这个 cos 第三方,并上传到了 maven 中心库,maven 升级方式:
groupId:com.jfinal
artifactId:cos
version:2017.5