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