mybatis foreach 批量导入数据其中一个字段为时间帮我写一个语句
假设要批量导入的数据为一个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/g90h 著作权归作者所有。请勿转载和采集!