MyBatis批量的增删改查操作
本文转载至http://blog.csdn.net/mahoking
前文我们介绍了MyBatis基本的增删该查操作,本文介绍批量的增删改查操作。前文地址:http://blog.csdn.net/mahoking/article/details/43673741
批量增加操作步骤
1. 在接口UserMapper中添加批量增加方法。
- /**
- * 批量增加操作
- * @param users
- */
- public void batchInsertUsers(List<User> users);
/*** 批量增加操作* @param users*/public void batchInsertUsers(List<User> users);
2.在User.xml中添加批量增加操作的配置。
- <!– 批量增加操作 –>
- <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>
<!-- 批量增加操作 --><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,编写批量增加方法。
- /**
- * 批量增加操作
- * @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);
- }
- }
/*** 批量增加操作* @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中添加删除增加方法。
- /**
- * 批量删除操作
- * @param ids
- */
- public void batchDeleteUsers(List ids);
/*** 批量删除操作* @param ids*/public void batchDeleteUsers(List ids);
2.在User.xml中添加批量增加操作的配置。
- <!– 批量删除操作 –>
- <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>
<!-- 批量删除操作 --><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中编写批量删除方法。
- /**
- * 批量删除操作
- * @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);
- }
- }
/*** 批量删除操作* @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中添加批量查询方法。
- /**
- * 批量查询操作
- * @param ids
- * @return
- */
- public List<User> batchSelectUsers(List ids);
/*** 批量查询操作 * @param ids* @return*/public List<User> batchSelectUsers(List ids);
2.在User.xml中添加批量查询操作的配置。
- <!– 批量查询操作 –>
- <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>
<!-- 批量查询操作 --><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中。
- <typeAliases>
- <!– 注册实体Bean –>
- <typeAlias type=“com.mahaochen.mybatis.domain.User” alias=“User”/>
- </typeAliases>
<typeAliases><!-- 注册实体Bean --><typeAlias type="com.mahaochen.mybatis.domain.User" alias="User"/>
</typeAliases>
3. 创建批量操作的工具类BatchDataUtils,编写批量查询方法。
- /**
- * 批量查询操作
- * @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;
- }
- }
/*** 批量查询操作 * @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中添加批量增加方法。
- /**
- * 批量更新操作
- * @param ids
- */
- public void batchUpdateUsers(List users);
/*** 批量更新操作 * @param ids*/public void batchUpdateUsers(List users);
2.在User.xml中添加批量更新操作的配置。
- <!– 批量更新操作 –>
- <!– 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>
<!-- 批量更新操作 --><!-- 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,编写批量更新方法。
- /
- 批量更新操作
- @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);
- }
- }
/ * 批量更新操作 * @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批量的增删改查操作相关推荐
- 使用Mybatis框架完成增删改查操作
一,MyBatis简介 MyBatis是一一个开源.轻量级的数据持久化框架,是JDBC和Hibernate的替代方案. MyBatis 前身为IBatis, 2002 年由Clinton Begin发 ...
- Mybatis入门程序增删改查操作
学习目标 了解Mybatis的基本知识 熟悉Mybatis的工作原理 掌握Mybatis入门程序的编写 文章目录 1.初始Mybatis 2.Mybatis入门程序 3.Mybatis操作总结 1.初 ...
- 利用Mybatis对数据库进行增删改查操作
文章目录 mybatis模糊查找 先来了解一下 #{}和${}的使用 parameterType和resultType的使用 selectOne和selectList的使用 mysql自增主键返回 方 ...
- python操作postgre库,批量进行增删改查和计时比较效率,封装好的普通增删改查和批量增删改查类拿来即用
python操作postgre库,批量进行增删改查,封装类,拿来即用 1. 新建postgre.py文件,使用psycopg2封装普通增删改查和批量增删改查类 postgre.py import ps ...
- MyBatis的Mapper 代理的增删改查操作(三)
沉迷于黑与白世界中的人,无论怎么挣扎,都逃不过被同化的命运.前世看见了什么,那么今世便是什么. 上一章简单介绍了MyBatis的命名空间方式的增删改查操作(二),如果没有看过,请观看上一章. 一. M ...
- MyBatis研习录(06)——基于注解的增删改查操作
C语言自学完备手册(33篇) Android多分辨率适配框架 JavaWeb核心技术系列教程 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往--自定义View ...
- Mybatis实现简单的数据库增删改查操作
简介: MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Ma ...
- MyBatis的增删改查操作
MyBatis的增删改查操作 简单实现一下MyBatis的增删改查,并且在控制台输出结果. 文章目录 MyBatis的增删改查操作 MyBatis的简单入门 一.查询操作 二.增加操作 三.修改操作 ...
- 后盾网lavarel视频项目---lavarel使用模型进行增删改查操作
后盾网lavarel视频项目---lavarel使用模型进行增删改查操作 一.总结 一句话总结: 使用模型操作常用方法 查一条:$model=Tag::find($id); 删一条:Tag::dest ...
最新文章
- 源码解析Spring Cloud Zuul
- 互联网人的求生战役!分享身边的 5 个故事
- 比特币现金是世界上最好货币的十大理由
- OAUTH 2.0授权码授予
- for相关 java_Java学习之for循环相关知识梳理
- 打破多项世界记录 双11背后最大的力量是技术
- 使用Zuul构建API Gateway
- 容器算法迭代器初识----容器嵌套容器
- 机器人(RPA路程自动化)RPA流程自动化和AI的区别。
- 软件过程管理期末复习资料
- Fullcalendar 日历控件的基本使用
- Win10家庭版中文用户名改英文用户名方法(亲测管用)
- asp.net mvc 网站生成二维码
- 我不允许还有人不会截图
- Caused by: java.sql.SQLException: Value ‘0000-00-00‘ can not be represented as java.sql.Date
- mysql服务重启和关闭
- 【雯女遭TVB封杀没剧拍】
- 【STM32】stm32驱动TB6600控制42/57步进电机的案例(TIM中断和PWM实验)
- Axure this is most likely not a valida .rp file
- 程序员35岁只能“安于现状”失业?这是过来人最棒的建议!能否“自救”...(含发展路线)