本文转载至http://blog.csdn.net/mahoking

前文我们介绍了MyBatis基本的增删该查操作,本文介绍批量的增删改查操作。前文地址:http://blog.csdn.net/mahoking/article/details/43673741

批量增加操作步骤

1. 在接口UserMapper中添加批量增加方法。

[java] view plaincopyprint?
  1. /**
  2. * 批量增加操作
  3. * @param users
  4. */
  5. public void batchInsertUsers(List<User> users);
 /*** 批量增加操作* @param users*/public void batchInsertUsers(List<User> users);

2.在User.xml中添加批量增加操作的配置。

[html] view plaincopyprint?
  1. <!– 批量增加操作 –>
  2. <insert id=“batchInsertUsers” parameterType=“java.util.List”>
  3. insert into mhc_user(userName,password) values
  4. <foreach collection=“list” item=“item” index=“index” separator=“,”>
  5. (#{item.userName},#{item.password})
  6. </foreach>
  7. </insert>
<!-- 批量增加操作 --><insert id="batchInsertUsers" parameterType="java.util.List">insert into mhc_user(userName,password) values<foreach collection="list" item="item" index="index" separator=",">(#{item.userName},#{item.password})</foreach></insert>

由于批量增加的方法中参数为List,所以parameterType的值为java.util.List。

3. 创建批量操作的工具类BatchDataUtils,编写批量增加方法。

[java] view plaincopyprint?
  1. /**
  2. * 批量增加操作
  3. * @param users
  4. */
  5. public static void batchInsertUsers(List<User> users){
  6. SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();
  7. SqlSession session = ssf.openSession();
  8. try {
  9. UserMapper userMapper = session.getMapper(UserMapper.class);
  10. userMapper.batchInsertUsers(users);
  11. session.commit();
  12. } catch (Exception e) {
  13. e.printStackTrace();
  14. } finally {
  15. MyBatisUtil.closeSession(session);
  16. }
  17. }
/*** 批量增加操作* @param users*/public static void batchInsertUsers(List<User> users){SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();SqlSession session = ssf.openSession();try {UserMapper userMapper = session.getMapper(UserMapper.class);userMapper.batchInsertUsers(users);session.commit();} catch (Exception e) {e.printStackTrace();} finally {MyBatisUtil.closeSession(session);}}

批量删除操作步骤

1. 在接口UserMapper中添加删除增加方法。

[java] view plaincopyprint?
  1. /**
  2. * 批量删除操作
  3. * @param ids
  4. */
  5. public void batchDeleteUsers(List ids);
/*** 批量删除操作* @param ids*/public void batchDeleteUsers(List ids);

2.在User.xml中添加批量增加操作的配置。

[html] view plaincopyprint?
  1. <!– 批量删除操作 –>
  2. <delete id=“batchDeleteUsers” parameterType=“java.util.List”>
  3. delete from mhc_user where id in
  4. <foreach collection=“list” index=“index” item=“item” open=“(“ close=“)” separator=“,”>
  5. #{item}
  6. </foreach>
  7. </delete>
<!-- 批量删除操作 --><delete id="batchDeleteUsers" parameterType="java.util.List">delete from mhc_user where id in<foreach collection="list" index="index" item="item" open="(" close=")" separator=",">#{item}</foreach></delete>

由于批量删除的方法中参数为List,所以parameterType的值为java.util.List。

3. 在批量操作的工具类BatchDataUtils中编写批量删除方法。

[java] view plaincopyprint?
  1. /**
  2. * 批量删除操作
  3. * @param ids
  4. */
  5. public static void batchDeleteUsers(List ids){
  6. SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();
  7. SqlSession session = ssf.openSession();
  8. try {
  9. UserMapper userMapper = session.getMapper(UserMapper.class);
  10. userMapper.batchDeleteUsers(ids);
  11. session.commit();
  12. } catch (Exception e) {
  13. e.printStackTrace();
  14. } finally {
  15. MyBatisUtil.closeSession(session);
  16. }
  17. }
/*** 批量删除操作* @param ids*/public static void batchDeleteUsers(List ids){SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();SqlSession session = ssf.openSession();try {UserMapper userMapper = session.getMapper(UserMapper.class);userMapper.batchDeleteUsers(ids);session.commit();} catch (Exception e) {e.printStackTrace();} finally {MyBatisUtil.closeSession(session);}
}

批量查询操作步骤

1. 在接口UserMapper中添加批量查询方法。

[java] view plaincopyprint?
  1. /**
  2. * 批量查询操作
  3. * @param ids
  4. * @return
  5. */
  6. public List<User> batchSelectUsers(List ids);
/*** 批量查询操作 * @param ids* @return*/public List<User> batchSelectUsers(List ids);

2.在User.xml中添加批量查询操作的配置。

[html] view plaincopyprint?
  1. <!– 批量查询操作 –>
  2. <select id=“batchSelectUsers” resultType=“User”>
  3. select *
  4. from mhc_user where id in
  5. <foreach collection=“list” index=“index” item=“item” open=“(“ separator=“,” close=“)”>
  6. #{item}
  7. </foreach>
  8. </select>
<!-- 批量查询操作 --><select id="batchSelectUsers" resultType="User">select *from mhc_user where id in<foreach collection="list" index="index" item="item" open="(" separator="," close=")">#{item}</foreach></select>

由于批量查询的方法的返回为List<User>,所以resultType的值为User,即com.mahaochen.mybatis.domain.User。详见configuration.xml中。

[html] view plaincopyprint?
  1. <typeAliases>
  2. <!– 注册实体Bean –>
  3. <typeAlias type=“com.mahaochen.mybatis.domain.User” alias=“User”/>
  4. </typeAliases>
<typeAliases><!-- 注册实体Bean --><typeAlias type="com.mahaochen.mybatis.domain.User" alias="User"/>
</typeAliases>

3. 创建批量操作的工具类BatchDataUtils,编写批量查询方法。

[java] view plaincopyprint?
  1. /**
  2. * 批量查询操作
  3. * @param ids
  4. * @return
  5. */
  6. public static List<User> batchSelectUsers(List ids){
  7. SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();
  8. SqlSession session = ssf.openSession();
  9. List<User> users = null;
  10. try {
  11. UserMapper userMapper = session.getMapper(UserMapper.class);
  12. users = userMapper.batchSelectUsers(ids);
  13. } catch (Exception e) {
  14. e.printStackTrace();
  15. } finally {
  16. MyBatisUtil.closeSession(session);
  17. }
  18. return users;
  19. }
  20. }
/*** 批量查询操作 * @param ids* @return*/public static List<User> batchSelectUsers(List ids){SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();SqlSession session = ssf.openSession();List<User> users = null;try {UserMapper userMapper = session.getMapper(UserMapper.class);users = userMapper.batchSelectUsers(ids);} catch (Exception e) {e.printStackTrace();} finally {MyBatisUtil.closeSession(session);}return users;}
}

批量更细操作步骤

1. 在接口UserMapper中添加批量增加方法。

[java] view plaincopyprint?
  1. /**
  2. * 批量更新操作
  3. * @param ids
  4. */
  5. public void batchUpdateUsers(List users);
/*** 批量更新操作 * @param ids*/public void batchUpdateUsers(List users);

2.在User.xml中添加批量更新操作的配置。

[html] view plaincopyprint?
  1. <!– 批量更新操作 –>
  2. <!– FOR MySQL mysql需要数据库连接配置&allowMultiQueries=true
  3. 例如:jdbc:mysql://127.0.0.1:3306/mhc?allowMultiQueries=true –>
  4. <update id=“batchUpdateUsers” parameterType=“java.util.List”>
  5. <foreach collection=“list” item=“item” index=“index” open=“” close=“” separator=“;”>
  6. update mhc_user
  7. <set>
  8. userName = #{item.userName}, password = #{item.password}
  9. </set>
  10. where id = #{item.id}
  11. </foreach>
  12. </update>
  13. <!– 【扩展知识】 FOR Oracle  有以下三种方式–>
  14. <!– 方式一 –>
  15. <update id=“batchUpdateUsers01” parameterType=“java.util.List”>
  16. <foreach collection=“list” item=“item” index=“index” open=“begin” close=“;end;” separator=“;” >
  17. update mhc_user
  18. <set>
  19. userName = #{item.userName}, password = #{item.password}
  20. </set>
  21. where id = #{item.id}
  22. </foreach>
  23. </update>
  24. <!– 方式二 –>
  25. <update id=“batchUpdateUsers02” parameterType=“java.util.List”>
  26. <foreach collection=“list” item=“item” index=“index” open=“begin” close=“end;” separator=“” >
  27. update mhc_user
  28. <set>
  29. userName = #{item.userName}, password = #{item.password}
  30. </set>
  31. where id = #{item.id};
  32. </foreach>
  33. </update>
  34. <!– 方式三 –>
  35. <update id=“batchUpdateUsers03” parameterType=“java.util.List”>
  36. begin
  37. <foreach collection=“list” item=“item” index=“index” separator=“” >
  38. update mhc_user
  39. <set>
  40. userName = #{item.userName}, password = #{item.password}
  41. </set>
  42. where id = #{item.id};
  43. </foreach>
  44. end;
  45. </update>
<!-- 批量更新操作 --><!-- FOR MySQL mysql需要数据库连接配置&allowMultiQueries=true 例如:jdbc:mysql://127.0.0.1:3306/mhc?allowMultiQueries=true --><update id="batchUpdateUsers" parameterType="java.util.List"><foreach collection="list" item="item" index="index" open="" close="" separator=";">update mhc_user <set>userName = #{item.userName}, password = #{item.password}</set>where id = #{item.id}</foreach></update><!-- 【扩展知识】 FOR Oracle  有以下三种方式--><!-- 方式一 --><update id="batchUpdateUsers01" parameterType="java.util.List"><foreach collection="list" item="item" index="index" open="begin" close=";end;" separator=";" > update mhc_user <set>       userName = #{item.userName}, password = #{item.password}</set>where id = #{item.id}</foreach></update><!-- 方式二 --><update id="batchUpdateUsers02" parameterType="java.util.List"><foreach collection="list" item="item" index="index" open="begin" close="end;" separator="" > update mhc_user <set>       userName = #{item.userName}, password = #{item.password}</set>where id = #{item.id};</foreach></update><!-- 方式三 --><update id="batchUpdateUsers03" parameterType="java.util.List">begin<foreach collection="list" item="item" index="index" separator="" > update mhc_user <set>       userName = #{item.userName}, password = #{item.password}</set>where id = #{item.id};</foreach>end;</update>

由于批量更新的方法中参数为List,所以parameterType的值为java.util.List。

3. 创建批量操作的工具类BatchDataUtils,编写批量更新方法。

[java] view plaincopyprint?
  1. /
  2.  批量更新操作 
  3. @param users
  4. */
  5. public static void batchUpdateUsers(List users){
  6. SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory();
  7. SqlSession session = ssf.openSession();
  8. try {
  9. UserMapper userMapper = session.getMapper(UserMapper.class);
  10. userMapper.batchUpdateUsers(users);
  11. session.commit();
  12. } catch (Exception e) {
  13. e.printStackTrace();
  14. } finally {
  15. MyBatisUtil.closeSession(session);
  16. }
  17. }
 / * 批量更新操作  * @param users */ public static void batchUpdateUsers(List users){ SqlSessionFactory ssf = MyBatisUtil.getSqlSessionFactory(); SqlSession session = ssf.openSession();
    try {UserMapper userMapper = session.getMapper(UserMapper.class);userMapper.batchUpdateUsers(users);session.commit();} catch (Exception e) {e.printStackTrace();} finally {MyBatisUtil.closeSession(session);}
}

【转载使用,请注明出处:http://blog.csdn.net/mahoking】

MyBatis批量的增删改查操作相关推荐

  1. 使用Mybatis框架完成增删改查操作

    一,MyBatis简介 MyBatis是一一个开源.轻量级的数据持久化框架,是JDBC和Hibernate的替代方案. MyBatis 前身为IBatis, 2002 年由Clinton Begin发 ...

  2. Mybatis入门程序增删改查操作

    学习目标 了解Mybatis的基本知识 熟悉Mybatis的工作原理 掌握Mybatis入门程序的编写 文章目录 1.初始Mybatis 2.Mybatis入门程序 3.Mybatis操作总结 1.初 ...

  3. 利用Mybatis对数据库进行增删改查操作

    文章目录 mybatis模糊查找 先来了解一下 #{}和${}的使用 parameterType和resultType的使用 selectOne和selectList的使用 mysql自增主键返回 方 ...

  4. python操作postgre库,批量进行增删改查和计时比较效率,封装好的普通增删改查和批量增删改查类拿来即用

    python操作postgre库,批量进行增删改查,封装类,拿来即用 1. 新建postgre.py文件,使用psycopg2封装普通增删改查和批量增删改查类 postgre.py import ps ...

  5. MyBatis的Mapper 代理的增删改查操作(三)

    沉迷于黑与白世界中的人,无论怎么挣扎,都逃不过被同化的命运.前世看见了什么,那么今世便是什么. 上一章简单介绍了MyBatis的命名空间方式的增删改查操作(二),如果没有看过,请观看上一章. 一. M ...

  6. MyBatis研习录(06)——基于注解的增删改查操作

    C语言自学完备手册(33篇) Android多分辨率适配框架 JavaWeb核心技术系列教程 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往--自定义View ...

  7. Mybatis实现简单的数据库增删改查操作

    简介: MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Ma ...

  8. MyBatis的增删改查操作

    MyBatis的增删改查操作 简单实现一下MyBatis的增删改查,并且在控制台输出结果. 文章目录 MyBatis的增删改查操作 MyBatis的简单入门 一.查询操作 二.增加操作 三.修改操作 ...

  9. 后盾网lavarel视频项目---lavarel使用模型进行增删改查操作

    后盾网lavarel视频项目---lavarel使用模型进行增删改查操作 一.总结 一句话总结: 使用模型操作常用方法 查一条:$model=Tag::find($id); 删一条:Tag::dest ...

最新文章

  1. 源码解析Spring Cloud Zuul
  2. 互联网人的求生战役!分享身边的 5 个故事
  3. 比特币现金是世界上最好货币的十大理由
  4. OAUTH 2.0授权码授予
  5. for相关 java_Java学习之for循环相关知识梳理
  6. 打破多项世界记录  双11背后最大的力量是技术
  7. 使用Zuul构建API Gateway
  8. 容器算法迭代器初识----容器嵌套容器
  9. 机器人(RPA路程自动化)RPA流程自动化和AI的区别。
  10. 软件过程管理期末复习资料
  11. Fullcalendar 日历控件的基本使用
  12. Win10家庭版中文用户名改英文用户名方法(亲测管用)
  13. asp.net mvc 网站生成二维码
  14. 我不允许还有人不会截图
  15. Caused by: java.sql.SQLException: Value ‘0000-00-00‘ can not be represented as java.sql.Date
  16. mysql服务重启和关闭
  17. 【雯女遭TVB封杀没剧拍】
  18. 【STM32】stm32驱动TB6600控制42/57步进电机的案例(TIM中断和PWM实验)
  19. Axure this is most likely not a valida .rp file
  20. 程序员35岁只能“安于现状”失业?这是过来人最棒的建议!能否“自救”...(含发展路线)

热门文章

  1. ffmpeg视频中提取语音
  2. SQL 忽略大小写模糊查询
  3. Unity Live2D 通过脚本播放动画 Motion Controller 学习使用
  4. python与Geant4的socket通信
  5. 算法笔记 简单贪心(月饼问题)
  6. 网易云音乐PC客户端加密API逆向解析
  7. Linux下git操作(一)——git基本命令
  8. Rainbow: Combining Improvements in Deep Reinforcement Learning
  9. 红米9.0系统设备最完美激活XPOSED框架的教程
  10. 转:感想东莞,想想东莞为外来工做了什么?