java - 如何使用ibatis注释进行批量插入

标签 java jdbc ibatis.net

我找不到这方面的教程,而且我发现文档很少。如何使用ibatis注解进行批量插入?

public interface MyTableMapper {
    @Insert("insert into MyTable(col1) values (#{valueOfCol1})")
    void insert(MyRecordClass obj);
}


public class MyTransactionalClass {
    @Transactional
    public void insert(MyRecordClass obj) {
        myTableMapperInst.insert(obj);
    }
}

我做了这个幼稚的实现(令人惊讶的是没有成功:-):

public class MyTransactionalClass {
@Transactional(executorType = ExecutorType.BATCH)       
 public void insert(MyRecordClass obj) {
        myTableMapperInst.insert(obj);
    }
}

最佳答案

这是没有注释的,根据文档,你的方法似乎是正确的。

try {
    sqlMap.startTransaction()
    List list = (Employee) sqlMap.queryForList("getFiredEmployees", null);
    sqlMap.startBatch ();
    for (int i=0, n=list.size(); i < n; i++) {
        sqlMap.delete ("deleteEmployee", list.get(i));
    }
    sqlMap.executeBatch();
    sqlMap.commitTransaction();
    } finally {
        sqlMap.endTransaction();
  }

关于java - 如何使用ibatis注释进行批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25676280/

相关文章:

java - 对不同的列名重复使用 resultMap

sql-server-ce - iBatis.Net SQL Server 紧凑版 3.5

c# - 此 RPC 请求中提供的参数过多。最大值为 2100。

java - Java 中的 double float

java - 以类似枚举的方式组织常量组的好方法

java - gradle 依赖项 : what "classpath" keyword means exactly and where it is documented?

mysql - 名称 [jdbc/mydb] 未在此上下文中绑定(bind)。找不到 [jdbc]

java - 不能在 DDL 语句中使用绑定(bind)变量。备择方案?

java - Netty:ChannelFuture/ChannelFutureListener 是否保证为 "per-message"?

java - Informix JDBC ISO-8859-2 编码问题