【发布时间】:2018-04-05 11:11:03
【问题描述】:
它给出了这个错误:
"java.sql.SQLException: 参数索引超出范围(1> 参数个数,为0)。 "
这是代码:
public void insertData(int id,String name, String status, String age){
String sql = "INSERT INTO student_table (id,name,satus,age) VALUES (id,name,status,age)";
try (Connection conn1 = this.connects();PreparedStatement Prepst= conn1.prepareStatement(sql)){
Prepst.setInt(1, id);
Prepst.setString(2, name);
Prepst.setString(3, status);
Prepst.setString(4, age);
Prepst.executeUpdate();
}catch(Exception e){
System.err.println(e);
}
如果我将参数索引更改为另一个值,即:
Prepst.setInt(0, id);
然后它给出了这个错误:
" java.sql.SQLException: 参数索引超出范围 (0
----更新-----
我插入了这段代码:
String sql = "INSERT INTO student_table (id,name,satus,age) VALUES (?,?,?,?)";
它产生相同的结果:
表结构:
【问题讨论】:
-
请查看 Java 命名约定:oracle.com/technetwork/java/codeconventions-135099.html
-
带有
(?,?,?,?)的版本是正确的,但是第一个参数在位置1,而不是0。 -
好吧,对不起,我尝试了不同的方法。更正后它给出了这个 --> com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'satus' in 'field list'
-
你能把表结构/模式发给我吗?
-
@KlaydPro 也许是
status,而不是satus?无论如何,你的问题得到了回答。请不要用“帮助我调试我的代码,直到我得到正确的结果”来扩展它。
标签: java mysql sql-insert