//Java代码

public void batchAdd(){
SqlSession sqlSession = SqlSessionFactoryUtil.getSqlSession();
StudentMappper mapper = sqlSession.getMapper(StudentMappper.class);
List<Student> list = new ArrayList<Student>();
Student student1 = new Student();
student1.setName("新增" + new Random().nextInt(10));
student1.setAge(16);

Student student2 = new Student();
student2.setName("新增" + new Random().nextInt(10));
student2.setAge(16);
list.add(student1);
list.add(student2);

int result = mapper.batchAdd(list);
sqlSession.commit();
if (result > 0) {
System.out.println("----------batchAdd success-----");
} else {
System.out.println("----------batchAdd fail---------");
}
}

<!-- 批量新增 -->
<insert id="batchAdd" parameterType="java.util.List" useGeneratedKeys="true" >
<selectKey resultType="int" keyProperty="id" order="AFTER">
select LAST_INSERT_ID()
</selectKey>
insert into t_student (name,age)
values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.name},${item.age})
</foreach>
</insert>

//Java代码

public void batchDelList(){
SqlSession sqlSession = SqlSessionFactoryUtil.getSqlSession();
StudentMappper mapper = sqlSession.getMapper(StudentMappper.class);
List<Integer> list = new ArrayList<Integer>();
list.add(23);
list.add(24);
int result = mapper.batchDelStr(list);
sqlSession.commit();
if (result > 0) {
System.out.println("----------batchDel success-----");
} else {
System.out.println("----------batchDel fail---------");
}
}

    <!-- 批量删除-list -->
<delete id="batchDelStr" parameterType="java.util.List">
delete from t_student
where id in
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</delete>
//Java代码

public void batchDelArray(){
SqlSession sqlSession = SqlSessionFactoryUtil.getSqlSession();
StudentMappper mapper = sqlSession.getMapper(StudentMappper.class);
int[] ids = new int[]{27,28};
int result = mapper.batchDelArrays(ids);
sqlSession.commit();
if (result > 0) {
System.out.println("----------batchDel success-----");
} else {
System.out.println("----------batchDel fail---------");
}
}

    <!-- 批量删除-array -->
<delete id="batchDelArrays" parameterType="int">
delete from t_student
where id in
<foreach collection="array" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</delete>

170515、mybatis批量操作的更多相关文章

  1. mybatis批量操作-xml方式

    在实际项目中,我们一般都会用到批量insert.delete.update等操作,由于使用频率还是蛮高的,这里就做个简单的记录,供以后学习和参考. 批量insert 在数据库中,批量插入可以是多条in ...

  2. Mybatis 批量操作-删除、修改和查询

          批量操作的核心就是一次传入多个数据然后进行相关操作,增删改查中掌握其中一个,其它的就可以举一反三,触类旁通.它之所以执行效率高,是因为合并后日志量(MySQL的binlog和InnoDB的 ...

  3. MyBatis 批量操作、集合遍历-foreach

    在使用mybatis操作数据库时,经常会使用到批量插入.IN条件查询的情况,这时就难免要使用到foreach元素.下面一段话摘自mybatis官网: foreach 元素的功能是非常强大的,它允许你指 ...

  4. MyBatis批量操作报错:Parameter 'xxxList' not found. Available parameters are [list]

    问题背景: 在Dao中使用MyBatis进行查询操作,参数是传的一个List:studentNameList,但是在执行查询的时候报错,具体日志如下: com.chenzhou.base.mybati ...

  5. mybatis 批量操作增删改查

    在介绍批量操作之前,首先先介绍一个语法:foreach.可以说是,foreach是整个批量操作的灵魂. 属性 描述 item 循环体中的具体对象. 支持属性的点路径访问,如item.age,item. ...

  6. mybatis 批量操作 ------持续更新

    mybatis 不存在则才进行添加 # 添加的 sql 语句insert into sys_link_post_user(post_id,user_id)# 进行批量添加 (若不需要可以取消 froe ...

  7. (七)mybatis批量操作,分页插件

    首先使用方式很简单: SqlSession sqlSession = sessionFactory.openSession(ExecutorType.BATCH); 批量操作核心:改变执行sql的方式 ...

  8. on duplicate key update 的用法说明(解决批量操作数据,有就更新,没有就新增)mybatis批量操作数据更新和添加

    项目用的ORM框架是用springdatajpa来做的,有些批量数据操作的话,用这个效率太低,所以用mybatis自己写sql优化一下. 一般情况,我们肯定是先查询,有就修改,没有就添加,这样的话,单 ...

  9. Mybatis批量操作

    首先,mysql需要数据库连接配置&allowMultiQueries=true jdbc:mysql://127.0.0.1:3306/mybank?useUnicode=true& ...

随机推荐

  1. Ubuntu之命令壁纸

  2. android activity lifecycle

    学习android的activity,之前一直没有去琢磨,今天正好了解一下activity生命周期. 参考链接: https://developer.android.com/guide/compone ...

  3. 学习 C++,关键是要理解概念,而不应过于深究语言的技术细节

    学习 C++学习 C++,关键是要理解概念,而不应过于深究语言的技术细节. 学习程序设计语言的目的是为了成为一个更好的程序员,也就是说,是为了能更有效率地设计和实现新系统,以及维护旧系统. C++ 支 ...

  4. Spring-Condition设置

    为了满足不同条件下生成更为合适的bean,可以使用condition配置其条件.假如有一个bean,id为magicBean,只有当其具有magic属性时才生成,方法如下: javaConfig模式: ...

  5. SharePoint 2013 一次性上传文件大小限制

    默认是250MB,最大一次上传文件不超过2G The defaut size is 250MB and maximun upload size is 2047MB. It's can't greate ...

  6. optimization blocks (csapp chapter 5.1)

    p_511 编译器在没有指示下,会做‘ safe optimization',因此有些优化在没有参数的指示下是不会对代码做优化的,故在程序中应该避免某一类代码,因为它们妨碍了编译器做优化. optim ...

  7. select自定义小三角样式

    这段代码是网上大部分的解决办法,在这里总结一下: 让select透明,上面加一个span,来替换select框,可以自定义小三角样式,也可以做出select文字居中的效果. <div class ...

  8. 删除C盘垃圾文件bat

    @ECHO OFF@echo 此批处理由59互联(http://www.59.cn)整理发布@echo @echo 清理几个比较多垃圾文件的地方DEL /F /S /Q "C:\WINDOW ...

  9. VC++ :传统剪贴板的延迟提交技术

    传统剪贴板存在的局限 传统剪贴板有一个局限性:剪贴板上的所有数据都要保存在内存上. 对于文本字符串和其它简单数据类型,可以快速有效地传递.但是,对于比较大的数据,清空剪贴板之前,数据都要占用较大的内存 ...

  10. c#接口作为参数传递、返回

    接口做为参数传递,传递的是实现了接口的对象: 接口作为类型返回,返回的是实现了接口的对象. 接口的传递与返回就是围绕着上面的两句话展开的.