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对数据库进行数据的操作,包括单条语句的增删改查,多条语句的增删改查,本文主要介绍操作流程,关于流程的运作原理,对原理感兴趣的同学可自行查阅资料. 首先需要准备一个数据库 ...
随机推荐
- JMeter ----与WebDriver安装与测试
JMeter ----与WebDriver安装与测试 主要内容 JMeter安装 WebDriver安装 一个简单的JMeter+WebDriver示例 环境与参考 jvm版本: 1.8.0_65 j ...
- zookeeper 启动显示started,jps查看进程却没有,解决方法
如图所示, 输入 zkServer.sh start 显示如下: Starting zookeeper ... STARTED 可是输入jps指令 却找不到zookeeper进程 去zkdata文件目 ...
- pyhanlp 文本聚类详细介绍
文本聚类 文本聚类简单点的来说就是将文本视作一个样本,在其上面进行聚类操作.但是与我们机器学习中常用的聚类操作不同之处在于. 我们的聚类对象不是直接的文本本身,而是文本提取出来的特征.因此如何提取特征 ...
- Linux下Python与C++混合编程
最近在做一个CUDA的项目,记录下学习心得. 系统 Linux --generic #-Ubuntu x86_64 GNU/Linux C++调用Python Python模块代码: #!/usr/b ...
- DataFlow编程模型与Spark Structured streaming
流式(streaming)和批量( batch):流式数据,实际上更准确的说法应该是unbounded data(processing),也就是无边界的连续的数据的处理:对应的批量计算,更准确的说法是 ...
- Vivado HLS初识---阅读《vivado design suite tutorial-high-level synthesis》(3)
Vivado HLS初识---阅读<vivado design suite tutorial-high-level synthesis>(3) 优化lab1 1.创建工程,开启HLS 运行 ...
- excel技巧--单元格合并与拆分
如果要将上图的地区列做成下图的合并单一列: 有如下做法: (以下图表格为例) 1.选择要排序的表格,点击“开始”-->排序和筛选-->自定义排序.在对话框选择“业务项目”进行排序: 2.选 ...
- Action<T> Delegate
来源:https://docs.microsoft.com/zh-cn/dotnet/api/system.action-1?view=netframework-4.7.2 Action<T&g ...
- 跟未名学Office - PPT操作:高效
第二章. PPT操作:高效... 3 第一节 操作视图... 3 第二节 Word草稿... 4 第三节 幻灯片母版... 5 第四节 幻灯片页... 7 第五节 幻灯片排版... 8 第六节 模板. ...
- Git将本地库内容推送到远程
本地库与远程库的交互 1 .将本地库的内容推送到远程库 A.创建一个本地仓库 $ mkdir gitdemo B.初始化本地仓库 $ git init C.项目根目录下创建 .gitignore 文件 ...