DemoPreparedStatementSetCharacterStream.java Source code

Java tutorial

Introduction

Here is the source code for DemoPreparedStatementSetCharacterStream.java

Source

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.Reader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class DemoPreparedStatementSetCharacterStream {
    public static Connection getConnection() throws Exception {
        String driver = "org.gjt.mm.mysql.Driver";
        String url = "jdbc:mysql://localhost/databaseName";
        String username = "root";
        String password = "root";
        Class.forName(driver);
        Connection conn = DriverManager.getConnection(url, username, password);
        return conn;
    }

    public static void main(String[] args) throws Exception {
        String fileName = "charDataFile.txt";
        Reader fileReader = null;
        long fileLength = 0;
        Connection conn = null;
        PreparedStatement pstmt = null;

        try {
            File file = new File(fileName);
            fileLength = file.length();
            fileReader = (Reader) new BufferedReader(new FileReader(file));
            System.out.println("fileName=" + fileName);
            System.out.println("fileLength=" + fileLength);

            conn = getConnection();
            // begin transaction
            conn.setAutoCommit(false);
            // prepare SQL query for inserting a new row using SetCharacterStream()
            String query = "insert into char_stream_table (id, char_stream_column) values(?, ?)";
            // create PrepareStatement object
            pstmt = conn.prepareStatement(query);
            pstmt.setString(1, fileName);
            pstmt.setCharacterStream(2, fileReader, (int) fileLength);
            // execute query, and return number of rows created
            int rowCount = pstmt.executeUpdate();
            System.out.println("rowCount=" + rowCount);
            // end transaction
            conn.commit();
        } finally {
            pstmt.close();
            conn.close();
        }
    }
}