gpt4 book ai didi

java - JDBC - 在准备好的语句中使用 sysdate 会产生错误

转载 作者:行者123 更新时间:2023-12-02 07:26:23 26 4
gpt4 key购买 nike

当我执行准备好的语句时,出现以下错误。我的数据库使用 ms-access

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 10.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6956)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7113)
at sun.jdbc.odbc.JdbcOdbc.SQLExecute(JdbcOdbc.java:3148)
.....

这是我准备好的声明

addUserSt = con.prepareStatement("insert into Accounts(Username, First_name, last_name, gender, birthday, email, civil_status, password, role, date_join) values(?,?,?,?,CDATE(?),?,?,?,?, sysdate)");

这是我执行准备好的语句的方式...这里的变量都是字符串

                dc.addUserSt.setString(1, uname);
dc.addUserSt.setString(2, fname);
dc.addUserSt.setString(3, lname);
dc.addUserSt.setString(4, gender);
dc.addUserSt.setString(5, bday);
dc.addUserSt.setString(6, email);
dc.addUserSt.setString(7, civil);
dc.addUserSt.setString(8, pass);
dc.addUserSt.setString(9, role);

我不明白为什么我会得到参数太少的错误,我认为我很好地设置了准备好的语句。当我删除 sysdate 并删除列中的 date_join 时,程序运行完美。但我需要获取当前日期以存储在数据库中。任何帮助将不胜感激:)

最佳答案

sysdate 不是有效函数。请改用 Date()。

使用函数时不要忘记括号。

关于java - JDBC - 在准备好的语句中使用 sysdate 会产生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13543431/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com