Mybatis:Oracle批量新增、批量修改
在MyBatis中,批量新增和批量修改在Oracle数据库上可以通过以下方式实现:
批量新增:
- 在Mapper XML文件中使用
<foreach>
标签来构造批量插入的SQL语句。 - 调用Mapper接口时,传入一个包含多个对象的List。
Mapper XML示例:
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO your_table (column1, column2, ...)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.field1}, #{item.field2}, ...)
</foreach>
</insert>
Mapper 接口:
public interface YourMapper {
void batchInsert(List<YourObject> list);
}
使用示例:
List<YourObject> objects = new ArrayList<>();
// 填充对象列表
YourMapper mapper = sqlSession.getMapper(YourMapper.class);
mapper.batchInsert(objects);
批量修改:
- 使用
<foreach>
标签构造批量更新的SQL语句。 - 在
<foreach>
内部使用UPDATE
语句,并通过#{item.field}
引用列表中每个对象的属性。
Mapper XML示例:
<update id="batchUpdate" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" separator=";">
UPDATE your_table
SET column1 = #{item.field1}, column2 = #{item.field2}, ...
WHERE id = #{item.id}
</foreach>
</update>
Mapper 接口:
public interface YourMapper {
void batchUpdate(List<YourObject> list);
}
使用示例:
List<YourObject> objects = new ArrayList<>();
// 填充对象列表
YourMapper mapper = sqlSession.getMapper(YourMapper.class);
mapper.batchUpdate(objects);
请注意,在实际使用时,需要根据你的表结构和对象模型调整上述XML和接口代码。以上代码仅为示例,并假设YourObject
是一个包含所需字段的Java类,your_table
是要操作的数据库表名。
评论已关闭