假设要批量导入的数据为一个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类型

mybatis foreach 批量导入数据其中一个字段为时间帮我写一个语句

原文地址: https://www.cveoy.top/t/topic/g90h 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录