DemoPreparedStatementSetBinaryStream.java Source code

Java tutorial

Introduction

Here is the source code for DemoPreparedStatementSetBinaryStream.java

Source

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