jfinal 3.1 changelog:
1:sql管理添加分页支持,Model、Db 添加 paginate(int, int, SqlPara)
2:Model、Db 添加 getSql(String, Object...) 方法,添加 #para(int) 用法
3:增强sql管理的 #para 指令实现,ParaDirective,支持任意表达式
4:添加 arp.addSqlTemplate(IStringSource) 方便扩展任意 sql 模板源
5:添加ActiveRecordPlugin.getEngine()方法,便于对sql管理Engine对象进行配置
6:Model、Db添加paginateByFullSql(),作为paginate()的补充,支持复杂order by子句无法被replace的情况
7:添加 Db.getSql() 方法,支持无 data 参获取 sql
8:Model.getSql() 方法去除内部对 this.attrs 值的传递,避免对于dao对象的误用
9:打磨模板引擎词法分析器,消除使用嵌套指令多出来的一个换行符
10:Scope 添加 getData()、setData()、getRootData(),便于在自定义扩展指令中使用
11:增强 Field 表达式,支持获取数组长度:array.length
12:改进 Logic.isTrue() 添加对 double、float 值的逻辑判断
13:增强 #include 指令,支持自由传参功能:#include("_hot.html", title="热门新闻", list=newsList)
14:打磨 Arith,除以 0 或者对 0 取模异常信息添加模板文件名与行号,便于查错
15:模板引擎添加 #render 指令,可动态渲染子模板,作为 #include 静态包指令的补充
16:重构模板引擎在 devMode 之下资源重新加载设计,大幅降低相关代码量,提升代码可读性
17:添加 Kv 工具类用于取代 JMap,字符输入量更小,且输入更顺滑
18:添加 ElKit 工具类,30 行代码实现 EL 求值
19:增强 Controller.renderFile() 支持下载文件重命名
20:增强 FileRender,支持多种浏览器中文文件名下载,支持下载文件重命名
21:Dialect.forPaginate() 方法中的 select 与 sqlExceptSelect 被合并为 findSql,对方言有过扩展的小伙伴需要注意一下这个改变
22:Dialect 中添加buildModelList()与buildRecordList()便于对Model、Record构建过程进行控制
例如实现 JDBC 类型到 java 类型的精确映射,便于实现划线表字段转驼峰表字段扩展
23:ModelBuilder、RecordBuilder 去掉所有final关键字,便于继承展
24:增强 DruidPlugin,密码加密功能,添加 connectionInitSql,添加自动检测驱动类型,升级到最新版 1.0.29
25:添加 HikariCpPlugin 支持 HikariCP,号称史上最快数据库连接池
26:添加 Generator.setMappingKitClassName() 方法,便于设置 MappingKit 文件名
27:去除 Model.checkTableName方法,不再检测 sql 中是否存在本 model 对应的 tableName
28:fastjson、druid升级到最新版