2017-02-22 15:31

@无聊2356 这个就是纯 sql 问题了, jfinal 是将 sql 与参数原封不动的扔给 jdbc 去执行,无法干预到 sql 是否正确这件事

2017-02-22 15:30

#p(...) 这个指令,在她的位置上只输出一个问号字符 '?',并且向其中的变量值放入 para 列表中供后面使用

看一下最终生成的 sql 就知道这个 #p(...) 干了啥了,一是生成一个问号,二是将其中的变量值输出到 paraList 中去,其中的 sql 可以通过 SqlPara.getSql() 获取,paraList 可以通过 SqlPara.getPara() 获取

2017-02-22 13:20

@sruz jfinal 未来的版本会回顾大家的反馈历史,感谢支持

2017-02-22 11:09

看一下 com.jfinal.template.expr.ast.Field 这个类,x.status 取值时有一套策略:
field 表达式取值优先次序,以 user.name 为例
1:假如 user.getName() 存在,则优先调用
2:假如 user 为 Model 子类,则调用 user.get("name")
3:假如 user 为 Record,则调用 user.get("name")
4:假如 user 为 Map,则调用 user.get("name")
5:假如 user 具有 public name 属性,则取 user.name 属性值

2017-02-22 10:46

@sruz 这段代码历史久远,很久没有看过,jfinal 内部也并未使用过,或许需要改变

2017-02-22 10:45

是否是 linux 下没有权限访存放缓存的文件系统?

2017-02-21 18:01

通过创建一个public class MyMetaBuilder extends MetaBuilder 并覆盖掉其中的 boolean isSkipTable(String tableName) 在其中自由决定哪些是需要处理的表

只需要针对 tableName 这个参数,决定返回 true 还是 false 就可以控制转换哪些表,例如,使用正则表达式或者外部配置文件等方式

2017-02-21 15:48

为啥不直接删目录? 可以不使用递归删

2017-02-21 11:35

update() 这行代码执行时会生成一条 sql,看下这条 sql 有啥不对的就好,输出 sql 的方法,配置一下: arp.setShowSql(true);

2017-02-21 11:29

使用 baseUploadPath 的好处是,可以很方便地转移整个上传目录到其它的某个目录,例如原先是在 C:/files 目录,发现 C 盘空间不够了,需要转移到 D:/new_path,则只需要改下 baseUploadPath

如果没有固定一个 baseUploadPath 值,要做以上的改变会非常麻烦,很可能需要改 java 代码

2017-02-21 11:27

jfinal 后期的版本,引入了一个叫 baseUploadPath 的概念,该变量值可以通过 me.setBaseUploadPath(...) 进行配置,然后所有上传文件都会以这个 baseUploadPath 为基础路径去存放,在 getFile("parm", "E:/resources/", 3*1024*1024); 中指定的 "e:/reources/" 只会当成为一个相对路径

具体到方案,可以通过 me.setBaseUploadPath("E:/resources/") 配置一下就好

如果你的项目有所谓的多个 baseUploadPath 存在,可以用一下 File 移动目录来实现

2017-02-21 11:23

除了 @Dreamlu 给出的帮助以外,还可以看一下 jfinal 手册中的有关 ActiveRecord 在非 web 环境下使用那一章节

2017-02-21 11:22

抱歉没有用过 Atlas,给不到多少具体的帮助。中间件一般在用的时候对上层是透明的,所以建议主要去学一下 Atlas 的配置细节

在 jfinal 这端,对于数据源的配置会在 DruidPlugin、C3p0Plugin 这两个类中的构造方法和 setter 方法中提供