1、准备环境
这篇文章的批量操作都将是针对User用户表,下面给出相关的代码。
SQL建表语句
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `username` varchar(50) DEFAULT NULL COMMENT '用户名称', `password` varchar(50) DEFAULT NULL COMMENT '密码', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3010 DEFAULT CHARSET=utf8;
2、批量更新
批量更新是通过mybatis的foreach标签生成多条update语句实现的,如下所示。
注意:由于这里批量操作是通过多条【update】语句实现的,所以首先需要让mybatis框架开启批量操作的支持。也就是允许同时执行多条SQL语句。
在mybatis的数据源连接地址后面,添加:【allowMultiQueries=true】属性即可开启批量操作的支持。
3、xml文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mybatis.demo.mapper.UserMapper"> <!-- 批量更新 --> <update id="batchUpdate" parameterType="com.mybatis.demo.domain.User"> <foreach collection="userList" item="user" separator=";"> update user set username = #{user.username}, password = #{user.password} where id = #{user.id} </foreach> </update> </mapper>