mybatis批量操作-xml方式
在实际项目中,我们一般都会用到批量insert、delete、update等操作,由于使用频率还是蛮高的,这里就做个简单的记录,供以后学习和参考.
批量insert
在数据库中,批量插入可以是多条insert into tableName values(?,?,?...);
或者一条insert into tableName values (?,?,?...),(?,?,?...),(?,?,?...)....
那么我们在使用mybatis时,xml就可以如下写批量操作:
1 |
<insert id ="INSERT-CODE-BATCH" parameterType="java.util.List" > |
标签说明:
- foreach元素的属性主要有 item,index,collection,open,separator,close。
- item表示集合中每一个元素进行迭代时的别名
- index指定一个名字,用于表示在迭代过程中,每次迭代到的位置
- open表示该语句以什么开始
- separator表示在每次进行迭代之间以什么符号作为分隔符
- close表示以什么结束
- collection属性为必填属性! 可以是List,Array,Map.
注意
这里的foreach标签没有包含insert into tableName,所以最后实际执行的是一条SQL语句:
insert into redeem_code (batch_id, code, type, facevalue,create_user,create_time)
values
(?,?,?,?,?,? ),(?,?,?,?,?,? ),(?,?,?,?,?,? ),(?,?,?,?,?,? )
批量update
mybatis的批量重点就是怎么去将sql拼接成可以直接在数据库执行的sql,这里再记录下以ibatis的批量操作,只要会了一个,其他也都不是问题了.
1 |
<update id="WHOLESALE-UPDATE-REBATE-CONFIG-BY-PRODUCTCODE" > |
标签说明:
- prepend 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选)
- property 类型为 java.util.List 的用于遍历的元素(必选)
- open 整个遍历内容体开始的字符串,用于定义括号(可选)
- close 整个遍历内容体结束的字符串,用于定义括号(可选)
- conjunction 每次遍历内容之间的字符串,用于定义 AND 或 OR(可选)
注意
我这里传递过来的参数是一个Map<string,object>
1
2
3Map<String, Object> conditions = new HashMap<String, Object>();
conditions.put("rebateConfigValue", rebateValue); //rebateValue是一个固定的值
conditions.put("list", productCodeList);使用时,在List元素名后面包括方括号[]非常重要,方括号[]将对象标记为List,以防解析器简单地将List输出成String
mybatis批量操作-xml方式的更多相关文章
- springboot使用之二:整合mybatis(xml方式)并添加PageHelper插件
整合mybatis实在前面项目的基础上进行的,前面项目具体整合请参照springboot使用之一. 一.整合mybatis 整合mybatis的时候可以从mybatis官网下载mybatis官网整合的 ...
- SpringBoot入门教程(四)MyBatis generator 注解方式和xml方式
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML ...
- mybatis mapper xml文件的导入方式和查询方式
mybatis mapper xml文件的导入方式和查询方式 ssm框架 Mybatis mapper与SQLSession的关系 每个基于MyBatis的应用都是以一个SqlSessionFact ...
- MyBatis从入门到精通(2):MyBatis XML方式的基本用法
本章将通过完成权限管理的常见业务来学习 MyBatis XML方式的基本用法 2.1一个简单的权限控制需求 权限管理的需求: 一个用户拥有若干角色,一个角色拥有若干权限,权限就是对某个模块资源的某种操 ...
- MyBatis从入门到精通:使用XML方式(映射文件之类的)
2.3节笔记部分: package tk.mybatis.simple; public class Temp { } /* 2.2 使用XML方式 MyBatis使用了Java的动态代理可以直接通过接 ...
- SpringBoot系列-整合Mybatis(XML配置方式)
目录 一.什么是 MyBatis? 二.整合方式 三.实战 四.测试 本文介绍下SpringBoot整合Mybatis(XML配置方式)的过程. 一.什么是 MyBatis? MyBatis 是一款优 ...
- 一、MyBatis基本使用,包括xml方式、注解方式、及动态SQL
一.简介 发展历史:MyBatis 的前 身是 iBATIS.最初侧重于 密码软件的开发 , 后来发展成为一款基于 Java 的持久层框架. 定 位:MyBatis 是一款优秀的支持自定义 ...
- Spring Boot整合Mybatis(注解方式和XML方式)
其实对我个人而言还是不够熟悉JPA.hibernate,所以觉得这两种框架使用起来好麻烦啊. 一直用的Mybatis作为持久层框架, JPA(Hibernate)主张所有的SQL都用Java代码生成, ...
- Mybatis 快速入门(XML方式)第一天
导读 架构原理图 说明 mybatis配置文件 SqlMapConfig.xml,此文件为mybatis的全局配置文件,配置了mybatis的运行环境等信息 XXXMapper.xml,此文件作为my ...
随机推荐
- aspxgridview只编辑某一列然后更新
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="IsAllowDeliver ...
- position:fixed部分版本的浏览器不支持
ie6-ie8浏览器不支持这个属性 .fixed{ position:fixed; /*对于火狐等其他浏览器需要设置的*/ top:700px; /*同上*/ ...
- Leetcode 之Binary Tree Postorder Traversal(47)
中序遍历二叉搜索树,得到的是一个有序的结果,找出其中逆序的地方就可以了.如果逆序的地方相邻,只需把逆序的相换即可:如果不相邻,则需要找到第二个逆序对的 第二个元素再做交换. 定义两个指针p和q来指定需 ...
- redis 安装配置
reids 安装配置 1.1 下载软件包 [root@node01 ~]# mkdir -p /data/src/ [root@node01 ~]# cd /data/src/ [root@node0 ...
- mysql-备份及关联python
阅读目录 IDE工具介绍 MySQL数据库备份 mysqldump实现逻辑备份 回复逻辑备份 备份/恢复案例 自动化备份 表的导出和导入 数据库迁移 pymysql模块 一 链接.执行sql.关闭(游 ...
- matlab基本指令
基本命令 close all //关闭所有figure 命令打开的窗口,在命令窗口输入 clear all //清除之前运行程序所存下的所有变量 size(mat) a = [1 2 3 ; 4 5 ...
- 关于Sphinx中使用 RealTime Index的问题
我们有了完整索引和增量索引,为什么还需要研究实时索引? 1.完整索引每个晚上空闲时执行一次,时间较长,但问题不大,因为IO慢,CPU累,但那个时间段基本没有人使用平台,比如凌晨2点. 2.增量索引:目 ...
- ng配置301及反向代理示例
server { listen 80; server_name fpb.com; return 301 http://www.fpb.com$request_uri; } server { liste ...
- DotNetCore 微服务上传附件
后台接口升级成netcore 2.0了,然后之前的上传图片的接口就不再使用了.新的接口形式 #region IFormCollection /// <summary> /// IFormC ...
- 【转载】SwipeRefreshLayout源码解析
原文地址:https://github.com/hanks-zyh/SwipeRefreshLayout/blob/master/README.md 官方文档 SwipeRefreshLayout 是 ...