java - how to insert/update multiple rows into database without firing insert/ update query multiple times? -
if (!knowledge.isempty()) { iterator<entry<string, string>> classnmvalsitrkw = knowledge .entryset().iterator(); while (classnmvalsitrkw.hasnext()) { entry<string, string> p1 = classnmvalsitrkw.next(); string nm = p1.getkey(); string val = p1.getvalue(); string query3 = "insert namevalue(seqid, name, value) values(" + seqid + ",'" + nm + "','" + val + "')"; //system.out.println("insert query: " + query3); st = connect.createstatement(); st.executeupdate(query3); } }
"knowledge" hashtable have stored name value pairs want insert database. every iteration of while loop insert query getting fired. think inefficient. how insert multiple rows firing insert query once?
found example @ http://www.mkyong.com/jdbc/jdbc-preparedstatement-example-batch-update/
dbconnection.setautocommit(false);//commit trasaction manually string inserttablesql = "insert dbuser" + "(user_id, username, created_by, created_date) values" + "(?,?,?,?)"; preparedstatement = dbconnection.preparestatement(inserttablesql); preparedstatement.setint(1, 101); preparedstatement.setstring(2, "mkyong101"); preparedstatement.setstring(3, "system"); preparedstatement.settimestamp(4, getcurrenttimestamp()); preparedstatement.addbatch(); preparedstatement.setint(1, 102); preparedstatement.setstring(2, "mkyong102"); preparedstatement.setstring(3, "system"); preparedstatement.settimestamp(4, getcurrenttimestamp()); preparedstatement.addbatch(); preparedstatement.executebatch(); dbconnection.commit();
note batch update not limited insert statement, it’s valid update , delete statement well.
Comments
Post a Comment