jfinal在Db.save时报java.sql.SQLException: 调用中的无效参数

寒飞子 发布于 2017/03/03 12:34
阅读 723
收藏 0

com.jfinal.plugin.activerecord.ActiveRecordException: java.sql.SQLException: 调用中的无效参数
    at com.jfinal.plugin.activerecord.DbPro.save(DbPro.java:618)
    at com.jfinal.plugin.activerecord.Db.save(Db.java:390)

我的代码如下:

Db.save("eweb_page_function", "function_id, page_id, show_type, user_id",
    new Record().set("user_id", userId).set("page_id", "1").set("function_id", serviceIds[i]).set("show_type", "list"));

定位了报错的地方在DbPro里的577行
PreparedStatement pst;
if (config.dialect.isOracle())
    pst = conn.prepareStatement(sql.toString(), pKeys);//这个地方执行报错
else
    pst = conn.prepareStatement(sql.toString(), Statement.RETURN_GENERATED_KEYS);

生成的SQL是insert into eweb_page_function(function_id, page_id, show_type, user_id) values(?, ?, ?, ?)
pKeys的值是[function_id, page_id, show_type, user_id]

我用的是jfinal3.0,oracle的版本是11.2.1.0,驱动包是ojdbc6.jar,表是采用联合主键的方式(function_id, page_id, show_type, user_id),还请大神帮忙看下错在哪里?

加载中
0
cwledit
cwledit

[function_id, page_id, show_type, user_id] 这几个参数确定是否有值

寒飞子
寒飞子
都有值的
0
寒飞子
寒飞子

问题找到了,表的字段是functoin_id,我代码里写的是function_id,不一致导致出错。

蓝水晶飞机
蓝水晶飞机
牛逼的坑,把你坑进去了哈哈。
返回顶部
顶部