Mybatis插入列表怎么做?
书接上回,哎呀,有时候我需要往数据库里插入列表对象,不断的循环,然后插入单条记录,觉得很傻很天真啊,有没有效率高一些的方法呢?
建表
还是以简化的goods_info表为例,建表语句:
CREATE TABLE `goods_info` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 主键, `gmt_create` datetime NOT NULL COMMENT 创建时间, `gmt_modified` datetime NOT NULL COMMENT 修改时间, `name` varchar(50) DEFAULT NULL COMMENT 货物名称, `status` int(11) NOT NULL COMMENT 货物状态,0-未出售,1-已出售, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8 COMMENT=货物信息表 ;
批量插入多个对象怎么写呢?
这里要注意,需要定义一个VO对象,里面包含要插入的字段定义。然后insert语句如下所写:
<insert id="saveGoodsList" parameterType="java.util.List"
            useGeneratedKeys="false">
    insert into
        goods_info(gmt_create,gmt_modified,name,status)
    values
        <foreach collection="list" item="item" index="index" separator=",">
            (now(),now(),#{item.name},#{item.status})
        </foreach>
    </insert> 
就这么简单,就可以实现Mybatis插入列表对象。
