Am I doing anything wrong? Why iBATIS is so slow compared to JDBC? Thanks. --------------------------------------------------------------------------------------------------------- Using iBATIS to insert 1000 records: (38375 ms) sqlMap.startBatch(); Map args = CollectionUtil.createMap(2); for(int i=0;i<p_resultList.size();i++){ AdvancedSearchResultData resultData = (AdvancedSearchResultData)p_resultList.get(i); args.put("RESULT_DATA", resultData); args.put("UserIdentifier", p_userID); sqlMap.insert("insertIntoTempTable", args); } sqlMap.executeBatch();
INSERT INTO TEMPTABLE (ORDER_NUMBER, RESOURCE_ID, RESOURCE_TYPE_ID,USER_ID, ATTACHMENT_ID) VALUES ( #RESULT_DATA.relevance#, #RESULT_DATA.resourceIdentifier.ID#, 4, #UserIdentifier.ID#, #RESULT_DATA.attachmentIdentifier.ID# ) --------------------------------------------------------------------------------------------------------- Using JDBC to insert the same 1000 records (391 ms) statement = connection.prepareStatement( ""INSERT INTO TEMP_FTS(ORDER_NUMBER, RESOURCE_ID, RESOURCE_TYPE_ID,USER_ID,ATTACHMENT_ID) " + "VALUES ( ?,?, 4, ?, ?)" ); for(int i=0;i<p_resultList.size();i++){ AdvancedSearchResultData resultData = (AdvancedSearchResultData)p_resultList.get(i); statement.setLong( 1, i ); statement.setLong( 2, resultData.getResourceId() ); statement.setLong( 3, p_userID.getID() ); statement.setLong( 4, resultData.getAttachmentId() ); // attachment_id statement.addBatch(); } statement.executeBatch();