2017-08-14 17:15

@咔嚓 在本站首页右侧下载 jfinal 手册,其中有一章内容专门讲了模板引擎的用法

2017-08-14 16:53

@昔竹 如果是 debug , 这是正常的调试信息不需要理会,否则应该是缺包, 把缺少的包找对了就搞定了

2017-08-14 16:03

查询参数通常是 Object... paras, 我不记得有 list 为参数的

第二个问题不知道问的是什么,但建议你尽保能用问号占位来写 sql

2017-08-14 16:01

补充一下,添加一个你建议的 Engine.getTemplateByString(key,content) 方法也是可以的,但如我前面所说 engine 默认行为已经能够应对绝大部分场景,并且在极端情况下也可以很方便使用 true 参数,或者扩展 ISource 接口,所以也就没有添加这个方法,在保障大部分场景,又满足了完备性的同时,能省则省了

当然,这个问题一直是保持开放的,将来认知的提升,以及用户需求与反馈的消息过来以后,随时可以添加新的支持,你的建议也随时可以被添加进来

2017-08-14 15:56

由于 jfinal 是自己写算法来解析模板,所以解析性能是 freemarker、velocity 的 6 倍,这个性能在绝大多数场景下都是足够的,对于一个普通的模板文件解析时间都只需要几个毫秒,更何况这类 String 的内存对象,解析时间几乎可以忽略不计。

因此,jfinal 3.2 对 String 内存型的模板默认采用了不缓存的策略。而只有在极端情况下才需要缓存,这时候开发者可以使用 getTemplateByString 的 true 参数进行缓存,这种情况适用于 String 型的模板个数是有限的,不会造成内存泄漏

如果对性能有极端要求,同时 String 型模板的个数是不确定的,那么可以通过实现 ISource 接口去解决,该接口中有一个 getKey() 方法,可以用于指定缓存的 key,下面是一个大致的例子:
public class StringTemplate implements ISource {
private String key;
private String content;
public StringTemplate(String key, String content) {
this.key = key;
this.content = content;
}

public String getKey() {
return key;
}
// 其它实现方法省略
}

在用的时候这样:
engine.getTemplate(new StringTemplate(key, content));

2017-08-14 15:28

@Jacieyoung me.setBaseUploadPath(这里使用绝对路径) 就可以上传到你本机的任何地方了,例如:
1:linux 下使用 me.setBaseUploadPath("/root") 就可以上传到 root 下,注意要确保一下有 root 写权限

2:windows 下使用 me.setBaseUploadPath("d:/upload") 就可以上传到 d 盘的 upload 下

2017-08-14 14:28

首先单步调试一下,看这个变量的类型是什么,即便是 Date 类型也是带有时、分、秒的。如果是 Timestamp 类型,那就更没有错误。 这种情况通常只是视觉上看上去没有时分秒,而格式化输出的时候会有

注意:在查看数据时,通常是对象的 toString() 方法所表现的数据,与真实数据不同

如果类型确实不对,或者是 Date 类型,但真的丢失了小时、分、秒,自定义一个 MyOracleDialect 继承一下 OracleDaielct,拼接管一下里面的 buildRecordList 与 buildModelList, 自由控制一下这为类字段的获取,具体可以参考一下 ModelBuilder、RecordBuilder 中的读取代码

估计很可能只是视觉上的问题

2017-08-14 12:28

就是 log4j.properties 内容有错误而已,在本站首页右侧下载 jfinal demo,里面有一个 log4j.properties 文件,稍作修改,直接用上

2017-08-14 12:23

在 configConstant(Constants me) 中配置一下:
me.setBaseUploadPath("/ftp_path");

注意,这个只能配置为本机,如果想配置成远程服务器,需要写点代码自己处理

你可以在远程服务器上放一个简单的 jfinal 项目,然后通过二级域名指向这个程序,上传时仍然通过 getFile 来处理

2017-08-14 11:44

这个地方如果要改的话,最好改成带有下划线的方法名,例如: _getTable(),因为 Model 所对应的表的字段如果使用 "table" 为名称的话就冲突了

2017-08-13 16:16

本站的 mysql 数据库也是安装在阿里云上的,也是通过上面的jdbcUrl 登录的,可以不用指定端口号,默认就是 3306

2017-08-13 16:16

@youyuyang 用类似于 xshell、putty 这样的 ssh 登录到服务器,然后运行下面的命令登录到mysql:
mysql -uroot -p

登录进去以后通过 use demo; 切换到 demo 数据库,然后再 select * from ... 查询一下

确保在远程机器上可以登录以后,再将这个可以登录的用户名与密码放在程序中使用即可

2017-08-13 16:01

null pointer exception 这个是最基本的异常,某个对象为 null ,但你调用了它的方法

目测是 ActiveRecodPlugin 启动失败,没有获取到数据库连接,注意 localhost 连接的用户名与密码是否正确,并且确保在本地可以用该用户名连接