Mega Code Archive

 
Categories / Java Tutorial / Database
 

Create a PreparedStatement object with two parameter markers

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();     Statement st = conn         .createStatement();     st.executeUpdate("create table survey (id int, name VARCHAR(30) );");          String INSERT_RECORD = "insert into survey(id, name) values(?,?)";          PreparedStatement pstmt = conn.prepareStatement(INSERT_RECORD);     pstmt.setString(1, "1");     pstmt.setString(2, "name1");     pstmt.executeUpdate();     ResultSet rs = st.executeQuery("SELECT * FROM survey");     outputResultSet(rs);          pstmt.setString(1, "2");     pstmt.setString(2, "name2");     pstmt.executeUpdate();     rs = st.executeQuery("SELECT * FROM survey");     outputResultSet(rs);          rs.close();     st.close();     conn.close();   }   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", "");   } } ID NAME ---------------------- 1 name1 ID NAME ---------------------- 1 name1 2 name2 When your SQL query does not have any parameters, you should use a Statement instead of a PreparedStatement object, unless you are going to use it many times.