2020-12-10 11:45

在 package.xml 中的最上部分,已经有注释明确说明了,如何打包 zip、jar、dir、gz 等等格式

而且可以同时打包多种格式,不要乱改 package.xml 文件

2020-12-09 22:58

你谈到了 mybatis 对持久化层相对定义得更明确这个问题,在 10 年前我设计 active record 的时候也跟你有一样的考虑,但其实完全是多虑了:
1:数据库层面已经对字段的长度、类型、是否可以为 null 等等做过限定了,ORM 这一层如果再做一次其实没多少必要,最终落实的时候无非也是抛个异常或给个提示到应用层

2:对于 sql 查询来说,更加没有必要有所谓的定义明确的问题,因为 JDBC 已经对数据库字段转成什么样的 java 类型做过这个工作,绝大多数情况没有必要干预。为了提升用户体验可以适当干预几个类型,例如 Model.getStr、getInt 等等几个方法提供了自动类型转换

2020-12-09 22:53

basemodel 中的 getter、setter 本身就是不用写的,是生成器自动管理的,所以也就没有使用 lombok 的必要

jfinal 的 Model 其实是结合了传统 bean 与 map 的优点,bean 体现在 getter、setter 方法,好处不用多说, map 的优点是可以自由承载数据

model 中的 map 自由承载数据主要体现在两个方面:
1:sql 关联查询可以将其它 table 中的字段关联进来
2:可以通过 model.put(...) 放入任意数据便于在 view 层展示
以上两个特性是传统 bean 无论如何也无法实现的

至于 model 转 VO, 稍微用用反射就可以做到了,主要流程如下:
1:获取 VO 的所有 setter 方法
2:对 setter 方法进行循环,得到属性名,从 model 中取出数据,再放入 VO
model.get(属性名) 可很容易获取数据
3:将反射结果存到缓存,提升性能

2020-12-09 18:02

因为你的 href 后面的资源路径没有以 "/" 打头,所以资源路径会随着你当前目录到处乱飞

改成 "/assets/..... 即可

2020-12-09 15:53

@山东小木 这个分享主要是针对昨天新加的 Model.each API,关注这个就行

2020-12-09 14:32

@山东小木 这个问题好像跟去掉 order by 无关

2020-12-09 11:38

JsonKit 只是转调一下你通过 me.setJsonFactory(...) 配置好的转换工具

2020-12-09 11:37

配置 JFinalJsonFactory 时,使用的是 JFinalJson 来将对象转 json string。
而 JFinalJson 转 json 不会使用 getter 方法,所以你新增的 getter 是无用的。

配置 FastJsonFactory 时,使用的是 FastJson 来将对象转 json string。
而 FastJson 是使用的 getter 方法拿到数据并转换的。

文档中很详细说明过这个问题

2020-12-08 13:20

昨晚刚推送 jfinal 4.9.05,今天扩展就出来了,超赞

有几处改进建议,#if( isGetCount??false ) 这个与 #if( isGetCount ) 其实是等价的,因为 #if ( null ) 等价于 #if ( false )

同理 #if( !(isGetCount??false) ) 也可以改成 #if( !isGetCount )

2020-12-08 09:45

mysql 去除 order by 确实是为了性能,不过我在数据量不大的时候测试过,性能并无差别,可能是 mysql 内部已经做过这个优化

2020-12-08 09:44

mysql 确实可以不用去除 order by , 其它数据库的 select count 查询必须要去除,否则会出错

当前最简单的办法是,你通过继承 MysqlDialect 做一个自己的 MyDialect,然后覆盖掉父类的几个 paginate 方法,去除 order by 的替换:
public class MyDialect extends MysqlDialect {
....
}

最后配置一下:
arp.setDialect(new MyDialect());

2020-12-07 19:51

@joneJson 这个肯定是与 index 无关的

我估计是你的 scan 方法的参数传递的不对,有些 controller 没有扫描到,仅此而已

2020-12-07 18:20

路由规则完全没变, 不需要添加 index()

2020-12-07 17:56

@fatefl 跨越很多版本升级, 文档一定要过一下,要改动的地方其实很少很少:
https://jfinal.com/doc/14-1

2020-12-07 11:48

新版本的 JFinalConfig 新增了 configEngine(...) 方法,可能是你的老项目中没有添加这个方法

升级注意添加上 configEngine(...) 然后注意在 configConstant(Constants me) 中添加 me.setViewType(老项目中用到的 viewType);

升级文档注意看一下:
https://jfinal.com/doc/14-1