import java.io.File; 
import java.io.FileInputStream; 
import java.io.InputStream; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
 
public class DemoPreparedStatementSetBinaryStream { 
  public static Connection getConnection() throws Exception { 
    String driver = "oracle.jdbc.driver.OracleDriver"; 
    String url = "jdbc:oracle:thin:@localhost:1521:databaseName"; 
    String username = "name"; 
    String password = "password"; 
    Class.forName(driver); 
    Connection conn = DriverManager.getConnection(url, username, password); 
    return conn; 
  } 
 
  public static void main(String[] args)throws Exception { 
    String smallFileName = "smallFileName.dat"; 
    String largeFileName = "largeFileName.dat"; 
    Connection conn = null; 
    PreparedStatement pstmt = null; 
    try { 
      conn = getConnection(); 
      File smallFile = new File(smallFileName); 
      int smallFileLength = (int) smallFile.length(); 
      InputStream smallStream = (InputStream) new FileInputStream(smallFile); 
      File largeFile = new File(largeFileName); 
      int largeFileLength = (int) largeFile.length(); 
      InputStream largeStream = (InputStream) new FileInputStream(largeFile); 
 
      String query = "insert into binary_table(id, raw_column, long_raw_column) values(?, ?, ?)"; 
 
      conn.setAutoCommit(false); 
      pstmt = conn.prepareStatement(query); 
      pstmt.setString(1, "0001"); 
      pstmt.setBinaryStream(2, smallStream, smallFileLength); 
      pstmt.setBinaryStream(3, largeStream, largeFileLength); 
 
      // execute query, and return number of rows created 
      int rowCount = pstmt.executeUpdate(); 
      System.out.println("rowCount=" + rowCount); 
      conn.commit(); 
    } finally { 
      pstmt.close(); 
      conn.close(); 
    } 
  } 
} 
            
       
  |