2016-12-08 12:59

@gxlzlijng 如果纯 JDBC 都连不上数据库,那就想办法直到能连上,下一步才是将配置转到 jfinal 配置之中

2016-12-08 12:58

@gxlzlijng 原因就是无法获取连接,要定位这个错误极其容易,先用纯 JDBC 配好参数去连一下,确定能连上以后,再将前面配置好 JDBC 参数 copy 到 jfinal 代码中来

2016-12-08 11:43

错误提示已经很明确,无法获取连接:Connections could not be acquired from the underlying database!

这类错误无非就是如下几个原因:
1:连接数据库的用户名错误,密码错误
2:数据库名错误
3:连接用的用户账号没有权限

总之是配置的问题

2016-12-08 11:41

解决乱码的终极办法是找到乱码发生的源头,一定要单步调试,看是哪一步发生的乱码,例如,是不是中文文件名在很早的时候就是乱码,而是在 renderFile 方法之前就是乱码了,最快的解决办法就是单步调试

2016-12-08 11:40

如果你自己的项目够稳定,99% 的可能是对方提供天气的 API 不稳定,用一个 try catch,将所有日志记录下来,隔天的时候看一下就全明白了

2016-12-08 11:38

不用再找原因了,历史上大致有四五个人碰到过这个问题,是因为 oracle 驱动的 bug 引发的,换个 oracle jar 包即可打完收枪

2016-12-08 11:37

jfinal 作为框架,只能做一些权衡取舍,实现最常用的功能,这类同一个 name 提交数组的情况可以创建中间类 BaseController 来根据业务扩展出来,jfinal 对数组获取提供了最基本的方法:getParaValues(...),再不就是可以先通过 getRequest() 拿到最原始的 HttpServletRequest 对象以后,再自由进行扩展操作

根据业务去做这些功能没有什么隐患,希望你搞定以后可以回社区分享给大家,感谢反馈

2016-12-06 22:32

在此下载: https://git.oschina.net/zhouleib1412/jfinal-code-online
这个项目貌似两年没有在更新了

2016-12-06 20:30

@thinkive 异常信息已经极其明确, sql 语法错误而已,把 sql 改对即可打完收枪

2016-12-06 19:37

将 renderJson(page); 这一行改成 renderJson(JFinalJson.getJson().toJson(page)); 即可打完收枪

因为你用的 fastjson 或 jackson 这类工具转换 Record 对象时,这些工具都是依赖于 record 中的 getter 方法,而 record 中有一个 getColumns() 方法,所以会对此方法返回的数据进行 json 转换

而 JFinalJson 可以自动识别 Record 对象,而且不依赖于 getter 方法进行转换

2016-12-06 15:51

由于 redis 只能存 String 与 byte[] 这两种数据,而 java 的数据类型有很多,除了基本类型以外,还有对象类型要存放,所以大部分 java 客户端都会有用先将所有 java 类型转换类型为 byte[] 再存放

还有一种方式可以尝试就是,String 类型原样保存,其它类型转成 byte[] 类型存放,这种方式有个麻烦,就是在获取数据时,你需要想办法知道当前数据需不需要做反向序列化,因为你拿到的数据可能是某种类型转成 byte[] 后存的,也可能是 String 原样存的

基于上面的原因,jfinal 选择第一种方式,存之前全部序列化,取之前全部反序列化。而楼主碰到的问题是,存的那个incr 自增数据并不是 jfinal 存的,而是自动生成的,而取数据的时候却是用的 jfinal 的 api

这个问题是个比较纠结的问题,很早就备忘了,一直没有时间处理。未来可能的处理方式是,在获取数据以后,对数据类型做一下预测,需要反向序列化时才去反向序列化,只不过这个方案不是很优雅,对性能也会有些损失

最后,感谢你的反馈,后续版本会改进这里

2016-12-06 12:44

@SandKing 可是 jfinal 不知道要根据索引和外键生成什么样的查询才合适,希望能给出几个实例来

2016-12-06 12:44

@康康君 创建 add() 这个 action,这个 add 本来就是一个方法,如果不希望 add() 成为一个方法,可以在 url 中这样: http://www.jfinal.com/my/feedback/1,这个纯粹是路由规则问题,建议下载首页的 jfinal 手册看一下