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对数据库进行数据的操作,包括单条语句的增删改查,多条语句的增删改查,本文主要介绍操作流程,关于流程的运作原理,对原理感兴趣的同学可自行查阅资料. 首先需要准备一个数据库 ...
随机推荐
- Linux 命令之删除命令
在Linux下删除文件用rm命令,具体用法如下: rm [选项] 文件 选项说明: -f -force 忽略不存在的文件,强制删除,无任何提示 -i --interactive 进行交互式地删除 -r ...
- 关于plot画图的原理
首先是导入的: Import matplotlib.pyplot as plt 这份导入要背住,没事就是需要你进行导入的: 然后就是画图了,下面举一个例子: import numpy as np im ...
- Linux下安装CollabNetSubversionEdge
1.首先下载CollabNet Subversion,目前最新版本Subversion Edge 5.2.2 (Linux 64-bit),注意下载的时候需要注册下账号,才允许下载: 2.安装Coll ...
- 亚马逊 AWS ip反向解析:Configurable Reverse DNS for Amazon EC2’s Elastic IP Addresses
I’d like to call your attention to a new feature that we rolled out earlier this month. You can now ...
- (转)Mac环境下svn的使用
在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境.在Mac环境下,由于Mac自带了svn的服务器端和客户端功能,所以我们可以在不装任何第三方软件的前提下使用svn功能,不过还 ...
- Excel技巧--图表添加平均线为指标
如上图,如果在柱状图有一平均指标线,就能很直观地显示各柱状值是否高于或低于平均值这个指标. 添加方法: (1)为表格制作一个柱状图: 2.对图表点右键,菜单选择“更改图表类型”.对话框如下选择: 3. ...
- Hiero的spreadsheet中添加tag属性列
Hiero在对剪辑线上的item进行管理的时候,往往会添加能多tag,而在管 理面板spreadsheet中却无法对tag进行查询,这是一件很麻烦的事,Hiero Development Guide中 ...
- c++中计算程序执行时间
#include<iostream> #include<time.h> using namespace std; int main() { clock_t t1 = clock ...
- php 二维数组按照指定字段进行排序
$allItem = [ ["id"=>10,"updated_at"=>"2018-11-01"], ["id&qu ...
- java读写操作心得
一.获得控制台用户输入的信息 public String getInputMessage() throws IOException...{ System.out.println ...