2016-08-30 09:59
@zdhl 正常情况下应该是输出一个主键值,换驱动吧,历史上多次出现过 oracle 驱动出现的问题,例如参数超过 8 个的时候出异常的问题,换驱动解决以后回来分享一下。
2016-08-30 00:23
关键点在于在 sqlite 中使用 getColumnClassName(i) 获取不到正确的类型,而 getColumnType(i) 可以获取到正确的类型,这个行为只有在 sqlite 中是这样,在其它数据库中是正常的
目前来说,建议通过 public class MySqliteMetaBuilder extends MetaBuilder 并且覆盖掉 builderColumnMetas(...) 方法来支持 sqlite 数据库,jfinal 后续版本会考虑改进的办法
总的来说,现有的获取 meta 的方式非常稳定,只是 sqlite 中出现意外,不大可能会单独为了 sqlite 去改变以前的处理方式,一是为了稳定性。二是由于 getColumnType(i) 或许仍然不能像 getColumnClassName(i) 一样非常精准地得到相应的 java 类型
2016-08-30 00:15
@zdhl 单步调试一下,看是哪一步出的问题,在 MetaBuilder 中设置断点,查看获取 id 的那部分代码执行的情况
2016-08-29 21:04
@Kerwin 升级下驱动试试,出现这种情况表明 JDBC 无法正确反射出正确的类型,记得搞定后发篇分享出来,感谢支持 jfinal 社区