开发者社区> 问答> 正文

jfinal在Db.save时报java.sql.SQLException: 调?400报错

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),还请大神帮忙看下错在哪里?

展开
收起
爱吃鱼的程序员 2020-06-08 16:40:44 722 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

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

    都有值的

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

    牛逼的坑,把你坑进去了哈哈。
    2020-06-08 16:41:04
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载