2016-11-24 173 views
0

我不知道下面的代码有什么问题。什么是“java.sql.SQLException:没有为参数1指定值”?

try { 
     String sql = "INSERT INTO `myporject`.`selectnation` (`nations` ,`package` ,`persons`) " 
       + "VALUES ('?', ?, ?)"; 
     PreparedStatement ps = connect.prepareStatement(sql); 
     if (ps.executeUpdate() != -1) { 
      ps.setString(1,"Japan"); 
      ps.setInt(2, this.pack); 
      ps.setString(3, jTextField1.getText()); 

这是堆栈跟踪

值java.sql.SQLException:没有为参数1

+7

呃......也许在执行查询之前设置参数? –

回答

3

您正在尝试设置参数之前执行prepareStatement指定的值,所以你需要如下更改您的代码:

PreparedStatement ps = connect.prepareStatement(sql); 

//set the parameters first 
ps.setString(1,"Japan"); 
ps.setInt(2, this.pack); 
ps.setString(3, jTextField1.getText()); 

//now execute the prepared statement 
if (ps.executeUpdate() != -1) { 
    //add your code 
} 

我建议你参考here来了解jdbc的概念。

相关问题