2021-01-22 19:00

Clickhouse 下仍然可以使用 jfinal 的 Model,这个挺不错,赞

2021-01-22 15:45

@jf大哥大 静态资源在 fatjar 下面没有问题,下载首页的 jfinal demo,里面有一个打成 fatjar 的说明文件

2021-01-22 15:19

请求进入到了 filter,并且已经被 UrlSkipHandler 正确处理过了

后来出现的 404 是 tomcat 给出的,肯定就与 jfinal 无关了,你得让那些被 UrlSkipHandler 跳过的请求能被 tomcat 处理掉才可以

说白了就是你得让那些 url 的路径、文件名都要正确,否则 tomcat 必须要报 404

注意我的用词, 是 "必须" , 因为 tomcat 在找不到路径与文件的时候不出 404 是不行的

2021-01-22 15:14

扫描jar里面的action映射不需要改造,jfinal 新版本有这个功能:
https://jfinal.com/share/2311

其实,数据库映射也不需要扫描,因为生成器可以生成是映射,注意看文档

2021-01-21 15:37

你先找几位同学用起来,然后收集一下反馈

如果其他人不喜欢用生产出来不是最划算,剩下的价值就是你自己用着挺好

2021-01-21 01:02

注意上面代码中的 tableNameHashSet 中存放的是需要处理的 tableName 集合,只有在这个集合的才会被处理

你可以事先 new HashSet(),然后将你需要处理的 tableName 先放进去,这样就实现了你希望的功能了

2021-01-21 01:01

@liugz 其实是支持的, MetaBuilder 中提供了一个 skip 方法,可以这样:
MetaBuilder builder = new MetaBuilder(...);
builder.skip( t -> {
return ! tableNameHashSet.contains(t) ;
});

Generator gen = new Generator(...);
gen.setMetaBuilder(builder);
gen.generate();

skip 方法支持你传入一个函数,返回 true 表示跳过不当前 table 不处理,随心所欲定制

2021-01-21 00:57

如果list里某一个model里y没给值,那就放个null,这个肯定不行

因为数据表字段是可以有默认值的,例如 jfinal.com 大量的默认值为 0 或者 1 的情况

不指定值与指定 null 值是完全不同的概念

2021-01-21 00:56

放在 undertow 上与在 tomcat 上是一样的,当然是可以的

只需要处理好 session 共享就可以了,其实只需要弃用 session,而是将登录信息放在一个集中的数据库的 table 中就可以了

社区提供的 jfinal club 就是使用的 session 表方案:
https://jfinal.com/club

2021-01-21 00:54

目录没有登录、注册只是暂进的

最近没时间看社区,暂时隐藏

2021-01-19 22:37

估计是你的缓存配置了持久化,所以重新加载的时候要重磁盘加载数据

检查 ehcache.xml 中是不是有这种配置:
diskPersistent=true

2021-01-19 22:34

@prelove class java.time.LocalDateTime 不能转化为 java.util.Date,单步调试看是哪行代码抛出的

然后贴出代码来,改进一下就可以了

2021-01-19 22:32

你的建议:"根据list里的Model或则Record,去取对应表里的所有字段,然后拼接成像"

这个应该是不好解决,我举个例子,假定有个表是 table_x, 字段有三个 (id, x, y)
1:假定字段 id、x 不能为 null ,也就是说 insert 语句必须要给定值
2:假定字段 y 可以为 null,你可以指定值也可以不指定
3:有时候 y 字段的值你是知道的,所以你可以指定,但有时候你不知道该指定为什么值

以上情况下,如果 jfinal 自做主张,生成的 sql 包含字段 y, 那么有些不指定 y 值的 Record/Model 该放入什么值?


其实你的需求,使用 Db.batch(...) 手动指定 sql 也是可以的,方法原型如下:
public int[] batch(String sql, String columns, List modelOrRecordList, int batchSize)

2021-01-19 15:54

fatjar 模式改配置文件不太方便,这个分享很有用,赞一个

此外, jfinal undertow 还提供了五个参数的命令行支持,而且是优先于 undertow.txt 支持的,具体代码在这里:
https://gitee.com/jfinal/jfinal-undertow/blob/master/src/main/java/com/jfinal/server/undertow/UndertowServer.java#L362

注意看 loadCommandLineParameter() 方法上的注释说明,具体的用法如下:
java -Dundertow.port=8080 -Dundertow.host=0.0.0.0 -jar jfinal-club-release.jar

以上示例可以传入 port 、 host 两个参数,而且这两个参数拥有最高的优先级

一共有五个参数可以这样来传递:
port、host、resourcePath、ioThreads、workerThreads




传参注意事项:
1:传参规则由 java 命令行给定,与 jfinal undertow 项目完全无关
2:传参以 "-D" 为前缀,并且该前缀与后方的参数名之间不能有空格
3:参数名与参数值中间用等号字符分格,且等号前后不能空格