嫻嬭瘯鐜錛?/span>
springframework 1.0
鏁版嵁搴擄細Informix 9.21.FC1
琛ㄧ粨鏋勶細
Column name Type Nulls
f1 varchar(10,0) yes
f2 varchar(10,0) yes
f3 varchar(10,0) yes
f4 varchar(10,0) yes
f5 varchar(10,0) yes
f6 varchar(10,0) yes
f7 varchar(10,0) yes
f8 varchar(10,0) yes
f9 varchar(10,0) yes
f10 varchar(10,0) yes
鍦?/span>f1涓婂緩绔嬬儲寮?/span>
嫻嬭瘯鎯呭喌錛?/span>
case 1錛?/span>SQL鍗曚釜鎻愪氦錛屼笉prepare錛屼嬌鐢?/span>BaseDAOJdbc鐨?/span>executeSql鏂規硶
case 2錛?/span>SQL鍗曚釜鎻愪氦錛?/span>prepare錛屾柟娉曞涓嬶細
public void saveDataSinglePrepare(final List data) {
getJdbcTemplate().execute(insertData,
new PreparedStatementCallback() {
public Object doInPreparedStatement(PreparedStatement ps) throws SQLException, DataAccessException {
Iterator iter = data.iterator();
while (iter.hasNext()){
Object[] objs = (Object[]) iter.next();
for(int i=0; i ps.setObject(i+1, objs[i]); } ps.execute(); } return null; } } ); } case 3錛?/span>SQL鎵歸噺鎻愪氦錛屼嬌鐢?/span>BaseDAOJdbc鐨?/span>executeBatch鏂規硶 /** * Jdbc sql鐨勬壒閲忔搷浣?/span> * @param sql sql璇彞 * @param values 鍖呭惈鍙傛暟鐨?/span>List錛?/span>List鐨勬瘡涓厓绱犳槸涓涓?/span>Object[]錛?/span>Object[]鏄竴涓崟鐙殑sql鎿嶄綔鎵闇鐨勫弬鏁?/span> */ public void executeBatch(final String sql, final List values){ if (values.size() == 0) return ; getJdbcTemplate().batchUpdate(sql, new BatchPreparedStatementSetter() { public void setValues(PreparedStatement ps, int i) throws SQLException { Object[] args = (Object[]) values.get(i); for(int j=0; j ///log.debug(String.valueOf(j+1)+":"+args[j].toString()); ps.setObject(j+1, args[j]); } } public int getBatchSize() { return values.size(); } } ); } case 4錛?/span>SQL鎵歸噺鎻愪氦錛屼嬌鐢?/span>BaseDAOJdbc鐨?/span>executeBatch2鏂規硶 private static final int batch_size = 100; public void executeBatch2(final String sql, final List values){ getJdbcTemplate().execute(sql, new PreparedStatementCallback() { public Object doInPreparedStatement(PreparedStatement ps) throws SQLException, DataAccessException { Iterator iter = values.iterator(); int sqlCount = 0; while (iter.hasNext()){ if (sqlCount >= batch_size){ ps.executeBatch(); sqlCount = 0; //log.info("executeBatch:" + sql); } Object[] args = (Object[]) iter.next(); for(int i=0; i ps.setObject(i+1, args[i]); } ps.addBatch(); sqlCount ++; log.debug("sqlCount:" + String.valueOf(sqlCount)); } if (sqlCount > 0){ ps.executeBatch(); sqlCount = 0; //log.info("executeBatch:" + sql); } return null; } } ); }
]]>