jdbc - Error: java.sql.BatchUpdateException: Field 'stu_id' doesn't have a default value -
i'm new jdbc , sql , have program when run it, following error:
java.sql.batchupdateexception: field 'stu_id' doesn't have default value. i have tried manipulating line
pst = con.preparestatement("insert student(first_name,last_name,address) values (?,?,?)"); by adding 4th question mark in values, , adding stu_id in insert student(). however, have given other errors. don't know do?
package java11; import java.sql.connection; import java.sql.drivermanager; import java.sql.preparedstatement; import java.sql.sqlexception; import java.sql.statement; public class preparedexample { public static void main(string[] args) { connection con=null; preparedstatement pst=null; try { class.forname("com.mysql.jdbc.driver"); con = drivermanager.getconnection("jdbc:mysql://localhost:3306/world","root","sree7rama3**"); pst = con.preparestatement("insert student(first_name,last_name,address) values (?,?,?)"); for(int i=1;i<=20;i++){ //pst.setint(1, i); pst.setstring(1, "hello-"+i); pst.setstring(2, "world-"+i); pst.setstring(3,"hyd-"+i); pst.addbatch(); } pst.executebatch(); system.out.println("update successful!"); }catch (sqlexception e) { system.out.println("there sql errors!"); e.printstacktrace(); }catch (classnotfoundexception e) { system.out.println("driver class not attached project!"); e.printstacktrace(); }finally{ try { pst.close(); } catch (sqlexception e) { e.printstacktrace(); } try { con.close(); } catch (sqlexception e) { e.printstacktrace(); } } } }
it looks when added stu_id statement presumably added line
pst.setint(1, i); and had these lines
pst.setstring(1, "hello-"+i); pst.setstring(2, "world-"+i); pst.setstring(3,"hyd-"+i); so overwriting first parameter (both 1).
try
pst = con.preparestatement("insert student(stu_id,first_name,last_name,address) values (?,?,?,?)"); pst.setint(1, i); pst.setstring(2, "hello-"+i); pst.setstring(3, "world-"+i); pst.setstring(4,"hyd-"+i);
Comments
Post a Comment