MyBatis 批量导入数据:使用 foreach 标签处理时间类型字段
本文将介绍使用 MyBatis 的 foreach 标签进行批量导入数据,并重点讲解如何处理时间类型字段,确保将 Java 的 Date 类型正确转换为数据库的 Timestamp 类型。
假设我们要批量导入的数据为一个 List 对象,其中每个元素是一个 Map 对象,包含了要插入的数据:
List<Map<String, Object>> dataList = new ArrayList<>();
Map<String, Object> data1 = new HashMap<>();
data1.put('id', 1);
data1.put('name', 'Tom');
data1.put('age', 18);
data1.put('create_time', new Date());
dataList.add(data1);
Map<String, Object> data2 = new HashMap<>();
data2.put('id', 2);
data2.put('name', 'Jerry');
data2.put('age', 20);
data2.put('create_time', new Date());
dataList.add(data2);
其中,create_time 字段是时间类型。
使用 MyBatis 的 foreach 标签,可以如下插入数据:
<insert id="batchInsert">
INSERT INTO user (id, name, age, create_time)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.id}, #{item.name}, #{item.age}, #{item.create_time, jdbcType=TIMESTAMP})
</foreach>
</insert>
注意,在插入 create_time 字段时,需要指定 jdbcType 为 TIMESTAMP,以便 MyBatis 将 Java 的 Date 类型转换为数据库的 Timestamp 类型。
原文地址: https://www.cveoy.top/t/topic/oCZc 著作权归作者所有。请勿转载和采集!