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插入列表对象。

经验分享 程序员 微信小程序 职场和发展