2013-04-24 2 views
0

Это код здесь. Я пытаюсь поместить некоторые значения в базу данных с помощью подготовленного оператора, но получая это NULL-исключение.получение null exception для подготовленного оператора в java

java.sql.PreparedStatement stmt1 = null; 
for(int index2=0;index2<3;index2++) 
{ 
    for(int index1=0;index1<5;index1++) 
    { 
    String tt = "INSERT INTO timetable(col1,col2,col3,col4,col5) VALUES(?,?,?,?,?);"; 
    stmt = con.prepareStatement(tt); 
    stmt1.setInt(index1+1,index1*index2); 
    } 
    int success = 2; 
    success = stmt1.executeUpdate(); 
} 
+0

Вы инициализируете 'stmt' и' stmt1' по-прежнему NULL – sanbhat

+0

Вы оставили свои очки у себя дома этим утром Аджай? Во всяком случае, у вас есть свой ответ, поэтому я голосую, чтобы закрыть как «слишком локализованный». –

ответ

0

вы должны тянуть свой Statement из вне цикла, в противном случае вы продолжаете создавать новое подготовленное заявление, в котором только один параметр из пяти установлен:

Изменить код:

for(int index1=0;index1<5;index1++) 
{ 
    String tt="INSERT INTO timetable(col1,col2,col3,col4,col5) VALUES(?,?,?,?,?);"; 
    stmt=con.prepareStatement(tt); 
    stmt1.setInt(index1+1,index1*index2); 
} 

в

String tt="INSERT INTO timetable(col1,col2,col3,col4,col5) VALUES(?,?,?,?,?);"; 
stmt1=con.prepareStatement(tt); 

for(int index1=0;index1<5;index1++) 
{ 
    stmt1.setInt(index1+1,index1*index2); 
} 
+0

gr8 >>>>>>> woking thaks много –

5

Здесь

stmt=con.prepareStatement(tt); // use stmt1 instead of stmt 
stmt1.setInt(index1+1,index1*index2);// this is NULL 

в приведенной выше строке инициализации stmt

+0

argh, вы были быстры. +1 –

+0

теперь получаю как это Исключение: значение, заданное для параметра 1 –

+2

, это другой вопрос. Вы должны подтвердить ответ Апурва для ЭТОГО вопроса. –

2

Initialize stmt1, она по-прежнему нулевой.

0

Это должно быть

stmt1=con.prepareStatement(tt); 
stmt1.setInt(index1+1,index1*index2); 

и не

stmt=con.prepareStatement(tt); 
stmt1.setInt(index1+1,index1*index2); 

Второй код должен дать ошибку компиляции, если это полный код, который вы получили.

+0

stmt, вероятно, инициализирован вне того, что размещал OP. – Brandon

+0

теперь получаю как это Исключение: Не указано значение для параметра 1 –

Смежные вопросы