转载出处:http://www.javadn.com/read.php?tid-790.html
public
void
batchUpdate(
final
String statementName,
final
List list) {
try
{
if
(list !=
null
) {
this
.getSqlMapClientTemplate().execute(
new
SqlMapClientCallback() {
public
Object doInSqlMapClient(SqlMapExecutor executor)
throws
SQLException {
executor.startBatch();
for
(
int
i = 0, n = list.size(); i < n; i++) {
executor.update(statementName, list.get(i));
}
executor.executeBatch();
return
null
;
}
});
}
}
catch
(Exception e) {
if
(
log
.isDebugEnabled()) {
e.printStackTrace();
log
.debug(
"batchUpdate error: id ["
+ statementName +
"], parameterObject ["
+ list +
"]. Cause: "
+ e.getMessage());
}
}
}
public
void
batchInsert(
final
String statementName,
final
List list) {
try
{
if
(list !=
null
) {
this
.getSqlMapClientTemplate().execute(
new
SqlMapClientCallback() {
public
Object doInSqlMapClient(SqlMapExecutor executor)
throws
SQLException {
executor.startBatch();
for
(
int
i = 0, n = list.size(); i < n; i++) {
executor.insert(statementName, list.get(i));
}
executor.executeBatch();
return
null
;
}
});
}
}
catch
(Exception e) {
if
(
log
.isDebugEnabled()) {
e.printStackTrace();
log
.debug(
"batchInsert error: id ["
+ statementName +
"], parameterObject ["
+ list +
"]. Cause: "
+ e.getMessage());
}
}
}
public
void
batchDelete(
final
String statementName,
final
List list) {
try
{
if
(list !=
null
) {
this
.getSqlMapClientTemplate().execute(
new
SqlMapClientCallback() {
public
Object doInSqlMapClient(SqlMapExecutor executor)
throws
SQLException {
executor.startBatch();
for
(
int
i = 0, n = list.size(); i < n; i++) {
executor.delete(statementName, list.get(i));
}
executor.executeBatch();
return
null
;
}
});
}
}
catch
(Exception e) {
if
(
log
.isDebugEnabled()) {
e.printStackTrace();
log
.debug(
"batchDelete error: id ["
+ statementName +
"], parameterObject ["
+ list +
"]. Cause: "
+ e.getMessage());
}
}
}
分享到:
相关推荐
<insert id="batchInsert"> INSERT INTO users (name, email) VALUES ('${item.name}', '${item.email}') != list.size() - 1">, </insert> ``` 接着,批量更新(Update Batch)同样使用`<foreach>`标签和...
使用Ibatis的批处理,首先需要开启SqlSession的自动提交,然后调用SqlSession的batch()方法进入批处理模式,接着执行多次insert、update或delete操作,最后调用commit()方法提交事务。这种方式避免了频繁的数据库...
在映射器接口方面,Mybatis3.x允许开发者直接在接口方法上使用@Select、@Insert、@Update、@Delete等注解,使得接口更加清晰,降低了学习成本。同时,3.x版本引入了MapperFactoryBean,使得Spring集成更加简便,无需...
本文将介绍如何利用iBatis框架进行批量添加、修改、删除等操作。 #### 二、iBatis批量操作原理 iBatis(现称为MyBatis)是一个支持普通SQL查询、存储过程以及高级映射的优秀持久层框架。它消除了几乎所有的JDBC...
- `<delete>`:用于删除,结构与`<insert>`类似。 - `<resultMap>`:定义复杂对象的映射,可以处理一对一、一对多、多对一等关联关系。 在实际开发中,Ibatis允许通过动态SQL来构建灵活的查询,比如`<if>`、`...
Ibatis 是一款轻量级的Java持久层框架,它与Hibernate和JPA等ORM框架不同,Ibatis 更注重SQL的自由度,允许开发者直接编写SQL语句,将SQL与Java代码解耦,提供了更高的灵活性。在本文中,我们将深入探讨如何使用...
11. **Batch Operations**:iBATIS提供了批处理功能,可以一次性提交多个插入、更新或删除操作,提升批量数据处理的效率。 12. **Error Handling**:当SQL执行出错时,iBATIS会抛出异常,提供错误信息帮助定位问题...
通过 `<select>`, `<insert>`, `<update>` 和 `<delete>` 标签定义 SQL 操作。 - 使用 `<parameterMap>` 和 `<resultMap>` 标签管理输入参数和输出结果集。 3. **动态 SQL** - iBatis 支持动态 SQL,可以在 XML ...
- **XML 结构**:SQL Map 文件包含 `<sqlmap>` 根元素,下有 `<select>`, `<insert>`, `<update>`, `<delete>` 等元素,分别对应 SQL 查询操作。 - **参数映射**:使用 `${}` 或 `#{}` 来传递参数,前者用于简单的...
可以直接把一个PO类存到数据库通过PO类和一个id可以获取到该对象通过PO类可以直接update数据库记录不需要实现 BatchPreparedStatementSetter, 就可以批量update通过一个对PO对象删除对应的数据库记录依然可以使用...