2016-11-24 4 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()); 

И это StackTrace

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.