PreparedStatement provides the facility to store and retrieve the file in the database using JDBC.
PreparedStatement methods to store file:
1. public void setBinaryStream(int paramIndex,InputStream stream)
throws SQLException
2. public void setBinaryStream(int paramIndex,InputStream stream,long length) throws SQLException
Example:
JDBCTest.java
import java.io.File; import java.io.FileReader; import java.sql.Connection; import java.sql.PreparedStatement; import com.w3schools.util.JDBCUtil; /** * This class is used to store a file in DB. * @author w3schools */ public class JDBCTest { public static void main(String args[]){ Connection conn = null; PreparedStatement preparedStatement = null; String createTableQuery = "create table FILESTORE(" + "FILE_ID NUMBER(5) NOT NULL, " + "NAME CLOB NOT NULL, " + "PRIMARY KEY (FILE_ID) )"; try{ //get connection conn = JDBCUtil.getConnection(); //create preparedStatement preparedStatement = conn.prepareStatement(createTableQuery); //execute query for create table preparedStatement.execute(); System.out.println("Table created successfully."); String storeFileQuery = "insert into FILESTORE " + "values (?,?)"; preparedStatement = conn.prepareStatement(storeFileQuery); //Read source file File file = new File("F:\\test.txt"); FileReader fileReader = new FileReader(file); preparedStatement.setInt(1,2); preparedStatement.setCharacterStream(2, fileReader,(int)file.length()); preparedStatement.executeUpdate(); System.out.println("File stored successfully."); //close connection preparedStatement.close(); conn.close(); }catch(Exception e){ e.printStackTrace(); } } } |
JDBCUtil.java
import java.sql.Connection; import java.sql.DriverManager; /** * This is a utility class for JDBC connection. * @author w3schools */ public class JDBCUtil { //JDBC and database properties. private static final String DB_DRIVER = "oracle.jdbc.driver.OracleDriver"; private static final String DB_URL = "jdbc:oracle:thin:@localhost:1521:XE"; private static final String DB_USERNAME = "system"; private static final String DB_PASSWORD = "oracle"; public static Connection getConnection(){ Connection conn = null; try{ //Register the JDBC driver Class.forName(DB_DRIVER); //Open the connection conn = DriverManager. getConnection(DB_URL, DB_USERNAME, DB_PASSWORD); if(conn != null){ System.out.println("Successfully connected."); }else{ System.out.println("Failed to connect."); } }catch(Exception e){ e.printStackTrace(); } return conn; } } |
Output:
Successfully connected. Table created successfully. File stored successfully. |
Download this example.
Next Topic: JDBC retrieve file example.
Previous Topic: JDBC batch processing.