MyBatis批量增删改查操作
前文我们介绍了MyBatis基本的增删该查操作,本文介绍批量的增删改查操作。前文地址:http://blog.csdn.net/mahoking/article/details/43673741
批量增加操作步骤
1. 在接口UserMapper中添加批量增加方法。
- /**
- * 批量增加操作
- * @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>
由于批量增加的方法中参数为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);
- }
- }
批量删除操作步骤
1. 在接口UserMapper中添加删除增加方法。
- /**
- * 批量删除操作
- * @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>
由于批量删除的方法中参数为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);
- }
- }
批量查询操作步骤
1. 在接口UserMapper中添加批量查询方法。
- /**
- * 批量查询操作
- * @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>
由于批量查询的方法的返回为List<User>,所以resultType的值为User,即com.mahaochen.mybatis.domain.User。详见configuration.xml中。
- <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;
- }
- }
批量更细操作步骤
1. 在接口UserMapper中添加批量增加方法。
- /**
- * 批量更新操作
- * @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>
由于批量更新的方法中参数为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);
- }
- }
MyBatis批量增删改查操作的更多相关文章
- 学习MyBatis必知必会(5)~了解myBatis的作用域和生命周期并抽取工具类MyBatisUtil、mybatis执行增删改查操作
一.了解myBatis的作用域和生命周期[错误的使用会导致非常严重的并发问题] (1)SqlSessionFactoryBuilder [ 作用:仅仅是用来创建SqlSessionFactory,作用 ...
- Mybatis之增删改查操作
准备工作 建立整体项目目录 新建一个java工程,创建如下工程目录 其中com.kang.pojo中存放pojo类,com.kang.test中存放测试类. 源码目录config中存放Mybatis的 ...
- MyBatis的增删改查操作
搭建好mybatis之后 进行对数据库的操作 添加语句 在映射文件中添加语句 insert into student(name,age,score) values(#{name},#{age},#{s ...
- MyBatis学习之简单增删改查操作、MyBatis存储过程、MyBatis分页、MyBatis一对一、MyBatis一对多
一.用到的实体类如下: Student.java package com.company.entity; import java.io.Serializable; import java.util.D ...
- 从0开始完成SpringBoot+Mybatis实现增删改查
1.准备知识: 1)需要掌握的知识: Java基础,JavaWeb开发基础,Spring基础(没有Spring的基础也可以,接触过Spring最好),ajax,Jquery,Mybatis. 2)项目 ...
- python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)
一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...
- 后盾网lavarel视频项目---lavarel使用模型进行增删改查操作
后盾网lavarel视频项目---lavarel使用模型进行增删改查操作 一.总结 一句话总结: 使用模型操作常用方法 查一条:$model=Tag::find($id); 删一条:Tag::dest ...
- django-数据库的增删改查操作
django-数据库的增删改查操作 1.添加用户记录 def login(request): 增加用户记录 使用save()方法来增加记录 username = UserInfo(username=' ...
- Jmeter对数据库批量增删改查
本文主要的内容是使用Jmeter对数据库进行数据的操作,包括单条语句的增删改查,多条语句的增删改查,本文主要介绍操作流程,关于流程的运作原理,对原理感兴趣的同学可自行查阅资料. 首先需要准备一个数据库 ...
随机推荐
- mqtt-jmeter
mqtt-jmeter https://github.com/emqtt/mqtt-jmeter mqtt-jmeter MQTT JMeter Plugin, it's used for testi ...
- jmeter---将回应数据写入到文件
jmeter---将回应数据写入到文件 JMeterPlugins (插件监听器)Flexible File Writer:这个插件允许你灵活记录测试结果 Filename:结果记录的地方 Overw ...
- Spring Cloud Feign Ribbon 配置
由于 Spring Cloud Feign 的客户端负载均衡是通过 Spring Cloud Ribbon 实现的,所以我们可以直接通过配置 Ribbon 的客户端的方式来自定义各个服务客户端调用的参 ...
- 一次修改mysql字段类型引发的技术探究
说来,mysql数据库是我们项目中用的比较多的库,ORM工具喜欢采用细粒度的MyBatis.这里面就这么引出了两者之间的故事! 首先,说改字段吧,将一个表中的varchar字段改为enum字段.如下: ...
- Mac OS安装Windows各版本时注意事项(2014年后的Mac机相信会有这些问题)
2014年后的Mac Mini安装Windows时候,会遇上更种坑,我这几天不断失败及尝试更种版本,各有心得体会,我写下来是为了避免大家遇到像我这种问题. (2014年之前的Mac Mini是否这样, ...
- Django--ORM--模型增删改查--备忘
以上运算符都区分大小写,在这些运算符前加上i表示不区分大小写,如iexact.icontains.istartswith.iendswith.insert into tb_bookinfo()valu ...
- P1601高精度加法
传送门 虽然本题一本通上有,但是一本通不是万能的,这道题就漏掉了进位(所以这告诉我们加法进位很重要) 直接上修改后的题解 #include<iostream> #include<cs ...
- (转)java基础-反射
原文地址:https://blog.csdn.net/sinat_38259539/article/details/71799078 反射是框架设计的灵魂 (使用的前提条件:必须先得到代表的字节码的C ...
- 开发框架-.Net:Learun(力软敏捷开发)
ylbtech-开发框架-.Net:Learun(力软敏捷开发) 1.返回顶部 2.返回顶部 1. 系统简介:(1)后台采用MVC+EF架构,前台使用Jquery+Bootstrap,界面美观大气 ...
- 理解 neutron(15):Neutron Linux Bridge + VLAN/VXLAN 虚拟网络
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...