Working with the Preparedstatement : Preparedstatement « Database « Java Tutorial






When your SQL query is parameterized, you should use a PreparedStatement object. A PreparedStatement object enables you to pass input parameters to the SQL statement before sending it to the database server for execution.

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, myDate TIMESTAMP );");
    
    String INSERT_RECORD = "insert into survey(id) values(?)";
    
    PreparedStatement pstmt = conn.prepareStatement(INSERT_RECORD);
    pstmt.setString(1, "1");
    pstmt.executeUpdate();

    ResultSet rs = st.executeQuery("SELECT * FROM survey");
    outputResultSet(rs);

    
    pstmt.setString(1, "2");
    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   MYDATE   
----------------------
1   null   
ID   MYDATE   
----------------------
1   null   
2   null








20.13.Preparedstatement
20.13.1.Working with the Preparedstatement
20.13.2.Create a PreparedStatement object with two parameter markers
20.13.3.Check for a SQL Warning Using PreparedStatement
20.13.4.Create a Table Using PreparedStatement
20.13.5.Set the Number of Rows to Prefetch Using PreparedStatement
20.13.6.Use PreparedStatement.setAsciiStream()
20.13.7.Use PreparedStatement.setBigDecimal()
20.13.8.Use PreparedStatement.setBinaryStream()
20.13.9.Use PreparedStatement.setBoolean()
20.13.10.Use PreparedStatement's setByte(), setShort(), setInt(), and setLong()
20.13.11.Use PreparedStatement.setBytes()
20.13.12.Use PreparedStatement.setCharacterStream()
20.13.13.Set NULL
20.13.14.DELETE data in a table
20.13.15.Modify data in a table
20.13.16.Prepared Statement With Batch Update
20.13.17.Select Records Using Prepared Statement
20.13.18.Inserting Records using the Prepared Statement
20.13.19.Count Records using the Prepared Statement
20.13.20.Deleting Records using the Prepared Statement
20.13.21.Using the Prepared Statement Twice
20.13.22.Set string,ingeger,double and float example by using the Prepared Statement
20.13.23.Set byte, short and long data types by using the Prepared Statement
20.13.24.Prepared Statement Set Big Decimal
20.13.25.Set Date by using the Prepared Statement
20.13.26.Set Time by using the Prepared Statement
20.13.27.Set Timestamp by using the Prepared Statement
20.13.28.Rows affected when updating data in database table
20.13.29.Use PreparedStatement.setURL()