java.sql.PreparedStatement

Интерфейс java.sql.PreparedStatement предназначен для выполнения претранслированных SQL-выражений. Он работает с SQL-выражениями, имеющими параметры.

Пример

import java.sql.*;
import java.util.Arrays;
import com.relx.jdbc.LinterDriver;

public class PreparedStatementDemo
{
  public static void main (String[] args)
  {
    try
    {
      Driver d = (Driver)Class.forName("com.relx.jdbc.LinterDriver").newInstance();

      String address = "jdbc:linter:linapid:localhost:1070:DEMO";
      String user    = "SYSTEM";
      String password= "MANAGER8";

      System.out.println("Driver found. Now connecting to database.");
      Connection con;
      con = DriverManager.getConnection(address,user,password);

      PreparedStatement prepstmt;

      Statement stmt = con.createStatement();

      stmt.executeUpdate("create or replace table test
                           (a blob, b int);");

      prepstmt = con.prepareStatement("insert into test values (?,?);");

      System.out.println("Prepared statement created");

      int testSize = 10;
      byte b = 126;
      byte[] buffer= new byte[testSize];
      Arrays.fill(buffer, b);

      System.out.println("Array filled");

      // SET BYTES
      prepstmt.setBytes(1, buffer);

      // SET INT PARAMETER
      prepstmt.setInt(2, 3);

      // EXECUTE PREPARED UPDATE
      int res = prepstmt.executeUpdate();

      System.out.println("Row count insert statements = " + res);

      // EXECUTE QUERY
      System.out.println("Selecting from database");
      ResultSet results;
      results = stmt.executeQuery("select * from test;");

      results.next();

      System.out.println("Second column value = " + results.getInt(2));
      byte bt[] = results.getBytes(1);
      System.out.println("Blob value = " + Arrays.toString(bt));

      results.close();

      try
      {
        stmt.executeUpdate("drop table test;");
      }
      catch(SQLException e)
      {
        System.out.println("Error deleting table:" + e.getMessage());
      }
      con.close();
    }
    catch (Exception e)
    {
        System.out.println("Catched :" + e + " mess= " + e.getMessage());
        e.printStackTrace();
    }
  }
}