// Populate the ResultSet while(resultSet.next()) { InputStream insurancedata; // Holds the LONG data StringBuffer dataBuffer = new StringBuffer();
/* Obtain the LONG data into a byte array. LONG data can be accessed in two ways: 1) By retrieving all the data in one shot (getBytes method) 2) By using streams. The LONG data is made available to the program as an Ascii or Unicode stream, and the data can be retrieved chunk by chunk, which is more eficient in terms of memory usage In this sample we illustrate retrieval using streams */ insurancedata = resultSet.getAsciiStream(1); while((chunk = insurancedata.read()) != -1) { dataBuffer.append((char)chunk); }
// Create a File to read data from the specified text file (textfile) File file = new File(getClass().getClassLoader().getResource(textfile).getFile());
// Prepare the statement for inserting a row into the OTN_AIRLINES_LONG PreparedStatement pstmt = connection.prepareStatement(" INSERT INTO "+ "otn_airlines_long( code, name, partner,"+ "airline_insurance_data) VALUES(?, ?, ?, ?)");
// Bind the parameter values for the above statement pstmt.setString(1, code); pstmt.setString(2, name); pstmt.setString(3, partner);
// Bind the AIRLINE_INSURANCE_DATA column to an input Ascii stream that // returns the Ascii data to be inserted into the LONGRAW column pstmt.setCharacterStream(4, new FileReader(file), (int)file.length());
// Execute the statement pstmt.execute(); } } ................ ................
Code for retrieving Long Data
public void displayLongData(String code) { ........ ........ // Create a PreparedStatement object to execute the QUERY PreparedStatement pst = connection.prepareStatement("SELECT airline_insurance_data"+ " FROM otn_airlines_long WHERE code = ?");
// Bind the airline code to the query pst.setString(1, code); gui.putStatus("Reading Long Column from the DB, Please wait...");
// Excute the Query ResultSet resultSet = pst.executeQuery();
// Populate the ResultSet while(resultSet.next()) { InputStream insurancedata; // Holds the LONG data StringBuffer dataBuffer = new StringBuffer(); /* Obtain the LONG data into a byte array. LONG data can be accessed in two ways: 1) By retrieving all the data in one shot (getBytes method) 2) By using streams. The LONG data is made available to the program as an Ascii or Unicode stream, and the data can be retrieved chunk by chunk, which is more eficient in terms of memory usage In this sample we illustrate retrieval using streams */ insurancedata = resultSet.getAsciiStream(1); while((chunk = insurancedata.read()) != -1) { dataBuffer.append((char)chunk); } ................ ................