oracle数据库在ibatis的批处理
2015-07-27 19:12
666 查看
思路一:java实现
通过Batch操作,实现insert和update的批处理。public class BaseLevelAccessDAOImpl extends SqlMapClientDaoSupport { public void insertBaseLevelDefine(final List<BaseLevelDefineDO> list) { if (null == list) { throw new IllegalArgumentException("Can't insert a null data object into db."); } SqlMapClientCallback callback = new SqlMapClientCallback() { public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException { executor.startBatch(); for (BaseLevelDefineDO item : list) { executor.insert("BASE-LEVEL-DEFINE-INSERT", item); } executor.executeBatch(); return null; } }; getSqlMapClientTemplate().execute(callback); } public void updateBaseLevelData(final List<BaseLevelDataDO> list) { if (list == null) { throw new IllegalArgumentException("Can't update by a null data object."); } SqlMapClientCallback callback = new SqlMapClientCallback() { public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException { executor.startBatch(); for (BaseLevelDataDO tObject : list) { executor.update("BASE-LEVEL-DATA-UPDATE", tObject); } executor.executeBatch(); return null; } }; getSqlMapClientTemplate().execute(callback); } }
xml配置实现
xml实现了insert,update不知怎么弄。<!-- mapped statement for BaseLevelAccessDAO.insertBaseLevelDefine --> <insert id="BASE-LEVEL-DEFINE-INSERT" parameterClass="java.util.List"> <![CDATA[ insert all ]]> <iterate conjunction=" " > <![CDATA[into test_table (ID,CUSTOM_TABLE_ID, FIELD,ENV,UNIMARK, GMT_CREATE) values (#list[].id#,#list[].customTableId#, #list[].field#, #list[].env#, #list[].unimark#, sysdate) ]]> </iterate> <![CDATA[select * from dual ]]> </insert>
相关文章推荐
- oracle 任务使用
- oracle---DBLink
- ORACLE-014:oracle中查看DBLink密码
- Linux平台 Oracle 11gR2 RAC安装Part3:DB安装
- Linux平台 Oracle 11gR2 RAC安装Part2:GI安装
- ORACLE授权
- ORACLE授权
- Oracle 经典练习语句
- windows下同一台服务器上装有两个ORACLE数据库实例,通过命令启停数据库
- oracle 执行 delete user$ 误删所有用户信息后的数据恢复流程
- oracle 执行 delete user$ 误删所有用户信息后的数据恢复流程
- Oracle SQL ANY和ALL语句
- ORACLE数据迁移
- zf-关于改绍兴县2个简单的BUG却需要ORACLE数据库的感慨
- ORA-01033: ORACLE initialization or shutdown in progress (DBD ERROR: OCISessionBegin)
- Oracle中的延迟块的清除方法
- Oracle 锁表 解锁
- linux下oracle手动启动服务和监听命令
- Oracle远程连接
- Oracle11g的注册表清理