在 Mybatis 中,可以使用 <foreach>
標簽來實現批處理操作。以下是一個示例:
首先,在 Mapper XML 文件中定義一個 foreach 標簽,如下所示:
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO table_name (column1, column2)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.column1}, #{item.column2})
</foreach>
</insert>
然后在 Java 代碼中調用該方法,并傳入一個 List 參數,如下所示:
List<MyObject> list = new ArrayList<>();
// 填充 list
try (SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH)) {
MyMapper mapper = sqlSession.getMapper(MyMapper.class);
mapper.batchInsert(list);
sqlSession.commit();
}
在這個例子中,我們通過 <foreach>
標簽將 List 中的對象批量插入到數據庫中。注意,在調用batchInsert
方法之前,需要將SqlSession
設置為ExecutorType.BATCH
,以確保開啟批處理模式。
需要注意的是,在使用 foreach 標簽進行批處理時,要確保數據庫支持批處理操作,否則可能會造成性能問題。