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();
}
}
}