网上有很多类似的解决办法,比如 首先要确定字段是否是对应的
<insert id="inserFun" parameterType="java.util.List">
insert into entity
(id,name,remark,age,brith)
values
<foreach collection="list" item="item" separator=",">
(
#{item.id,jdbcType=VARCHAR},#{item.name,jdbcType=VARCHAR},
#{item.remark,jdbcType=VARCHAR},#{item.age,jdbcType=VARCHAR},
#{item.brith,jdbcType=TIMTSTAMP}
)
</foreach>
</insert>
以这段批量插入为例,
1.确定要插入的值是否与下面value一一对应,不能多也不能少;
2.数据库字段等字段的变量名是否对应
3.就是我碰见的类型,在MySQL存储时间的数据类型有date还有datetime,他们对应的jdbcType是不一样的
就以例子中的brith为例子,他的MySQL存储数据类型为DATATIME,所以他的JdbcType就得写TIMTSTAMP,
假如brith在MySQL中存储的数据类型是date,就要写DATE,如果不能对应,也会报:Column count doesn't match value count at row * 这种错