public void init(int startIndex, int endIndex, String updateDate) throws SQLException { if (connection == null || connection.isClosed()) { connection = getConnection(); } if (startIndex != 0 && endIndex != 0) { bibQuery = "SELECT * FROM OLE_DS_BIB_T WHERE BIB_ID BETWEEN " + startIndex + " AND " + endIndex + " ORDER BY BIB_ID"; } else if (StringUtils.isNotEmpty(updateDate)) { updateDate = getDateStringForOracle(updateDate); bibQuery = "SELECT * FROM OLE_DS_BIB_T where DATE_UPDATED > '" + updateDate + "'"; } else { bibQuery = "SELECT * FROM OLE_DS_BIB_T ORDER BY BIB_ID"; } if (!isStaffOnly) { bibQuery = bibStaffOnly; holdingsQuery = holdingsQuery + staffOnlyHoldings; itemQuery = itemQuery + staffOnlyItem; } fetchCallNumberType(); fetchReceiptStatus(); fetchAuthenticationType(); fetchItemType(); fetchItemStatus(); fetchStatisticalSearchCode(); fetchExtentOfOwnershipType(); bibConnection = getConnection(); holdingsConnection = getConnection(); itemConnection = getConnection(); bibConnection.setAutoCommit(false); bibStatement = bibConnection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); if (dbVendor.equalsIgnoreCase("oracle")) { bibStatement.setFetchSize(1); } else if (dbVendor.equalsIgnoreCase("mysql")) { bibStatement.setFetchSize(Integer.MIN_VALUE); } bibResultSet = bibStatement.executeQuery(bibQuery); holdingsPreparedStatement = holdingsConnection.prepareStatement(holdingsQuery); itemPreparedStatement = itemConnection.prepareStatement(itemQuery); String insertQuery = "INSERT INTO OLE_DS_BIB_INFO_T(BIB_ID, BIB_ID_STR, TITLE, AUTHOR, PUBLISHER, ISXN) VALUES (?,?,?,?,?,?)"; bibInsertPreparedStatement = connection.prepareStatement(insertQuery); String updateQuery = "UPDATE OLE_DS_BIB_INFO_T SET TITLE=?, AUTHOR=?, PUBLISHER=?, ISXN=?, BIB_ID_STR=? WHERE BIB_ID=?"; bibUpdatePreparedStatement = connection.prepareStatement(updateQuery); }
protected Statement createStatement(Connection c) throws SQLException { Statement statement = c.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); statement.setFetchSize(batchSize); statement.setMaxRows(maxRows); return statement; }