Mega Code Archive

 
Categories / Java Tutorial / Database
 

Add batch SQL command into Statement

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.Statement; public class Main {   public static void main(String[] args) throws Exception {     Connection conn = getConnection();     conn.setAutoCommit(false);     Statement st = conn .createStatement();          st.executeUpdate("create table survey (id int, name VARCHAR(30) );");     st.addBatch("DELETE FROM survey");     st.addBatch("INSERT INTO survey(id, name) "+                   "VALUES(444, 'ginger')");     // we intentionally pass a table name (animals_tableZZ)     // that does not exist     st.addBatch("INSERT INTO survey(id, name) "+                   "VALUES(555, 'lola')");     st.addBatch("INSERT INTO survey(id, name) "+                   "VALUES(666, 'freddy')");     // Execute the batch     int[] updateCounts = st.executeBatch();          checkUpdateCounts(updateCounts);     // since there were no errors, commit     conn.commit();          ResultSet rs = st.executeQuery("SELECT * FROM survey");     outputResultSet(rs);          rs.close();     st.close();     conn.close();   }   public static void checkUpdateCounts(int[] updateCounts) {     for (int i=0; i<updateCounts.length; i++) {         if (updateCounts[i] >= 0) {             System.out.println("OK; updateCount="+updateCounts[i]);         }         else if (updateCounts[i] == Statement.SUCCESS_NO_INFO) {             System.out.println("OK; updateCount=Statement.SUCCESS_NO_INFO");         }         else if (updateCounts[i] == Statement.EXECUTE_FAILED) {             System.out.println("Failure; updateCount=Statement.EXECUTE_FAILED");         }     } }        private static void outputResultSet(ResultSet rs) throws Exception {     ResultSetMetaData rsMetaData = rs.getMetaData();     int numberOfColumns = rsMetaData.getColumnCount();     for (int i = 1; i < numberOfColumns + 1; i++) {       String columnName = rsMetaData.getColumnName(i);       System.out.print(columnName + "   ");     }     System.out.println();     System.out.println("----------------------");     while (rs.next()) {       for (int i = 1; i < numberOfColumns + 1; i++) {         System.out.print(rs.getString(i) + "   ");       }       System.out.println();     }   }   private static Connection getConnection() throws Exception {     Class.forName("org.hsqldb.jdbcDriver");     String url = "jdbc:hsqldb:mem:data/tutorial";     return DriverManager.getConnection(url, "sa", "");   } } OK; updateCount=0 OK; updateCount=1 ID NAME ---------------------- 444 ginger 555 lola 666 freddy