mybatis批量更新 mysql 报错,mybatis的批量更新实例

近来批量添加,删除,更新用的比较多,单一的删除和更新,操作无法满足企业某些业务的需求,故通过以下示例分享知识:

今天通过更新的例子来说明

演示环境为jdk8,maven环境,ssm框架

请准备好环境,数据表可直接使用

一、准备数据表

CREATE TABLE `user` (

`user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',

`username` varchar(20) DEFAULT NULL COMMENT '用户名',

`sex` varbinary(20) DEFAULT NULL COMMENT '性别',

`phone` varchar(20) DEFAULT NULL COMMENT '电话',

`password` varchar(20) DEFAULT NULL COMMENT '密码',

`level` int(4) DEFAULT NULL COMMENT '等级',

`create_time` datetime DEFAULT NULL COMMENT '用户创建时间',

`email` varchar(50) DEFAULT NULL COMMENT '邮箱',

`logo` int(2) DEFAULT '0' COMMENT '登录标识',

PRIMARY KEY (`user_id`)

) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;

二、准备JavaBean

package cn.blog.entity;

import java.util.Date;

import java.util.List;

/**

* 用户实体

* @author youcong

*

*/

public class User {

/** 用户ID*/

private Integer userId;

/** 用户名*/

private String username;

/** 电话*/

private String phone;

/** 密码*/

private String password;

/** 等级*/

private Integer level;

/** 用户创建时间*/

private String createTime;

/** 性别*/

private String sex;

/**

* 邮箱

*/

private String email;

/**

* 登录标识

* @return

*/

private Integer logo;

public Integer getLogo() {

return logo;

}

public void setLogo(Integer logo) {

this.logo = logo;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

public Integer getUserId() {

return userId;

}

public void setUserId(Integer userId) {

this.userId = userId;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username == null ? null : username.trim();

}

public String getPhone() {

return phone;

}

public void setPhone(String phone) {

this.phone = phone == null ? null : phone.trim();

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password == null ? null : password.trim();

}

public Integer getLevel() {

return level;

}

public void setLevel(Integer level) {

this.level = level;

}

public String getCreateTime() {

return createTime;

}

public void setCreateTime(String createTime) {

this.createTime = createTime;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

}

三、编写对应的Mapper和xml

package cn.blog.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.blog.entity.User;

/**

* 用户接口

* @author 挑战者

*

*/

public interface UserMapper {

/**

* 批量修改

*/

public void udpateUserLogoStatu(@Param ("users") List users);

}

update `user`

logo = 1

where logo = #{user.logo}

四、junit单元测试

package cn.blog.test;

import java.util.ArrayList;

import java.util.List;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.test.context.ContextConfiguration;

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import cn.blog.entity.User;

import cn.blog.mapper.UserMapper;

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration("classpath:application-config.xml")

public class BlogTest {

@Autowired

private UserMapper userMapper;

@Test

public void testName() throws Exception {

int logo[] = new int[] {0};

for (int i = 0; i < logo.length; i++) {

User user = new User();

user.setLogo(logo[i]);

List users = new ArrayList();

users.add(user);

userMapper.udpateUserLogoStatu(users);

}

}

}

mybatis执行批量更新update

Mybatis的批量插入这里有http://ljhzzyx.blog.163.com/blog/static/38380312201353536375/.目前想批量更新,如果update的值是相同的话 ...

mybatis 的批量更新操作sql

转: mybatis 的批量更新操作sql 2018年07月23日 10:38:19 海力布 阅读数:1689   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

170829、mybatis使用oracle和mybatis中批量更新

一.mybatis执行批量更新batch update 的方法(mysql数据库) 1.数据库连接必须配置:&allowMultiQueries=true(切记一定要加上这个属性,否则会有问题 ...

mysql批量update更新,mybatis中批量更新操作

在日常开发中,有时候会遇到批量更新操作,这时候最普通的写法就是循环遍历,然后一条一条地进行update操作.但是不管是在服务端进行遍历,还是在sql代码中进行遍历,都很耗费资源,而且性能比较差,容易造 ...

mybatis中批量更新的问题

问题:使用mybatis在执批量更新操作时,一直报错执行失败 解决方法: 首先打印了SQL语句,发现SQL语句拿出来执行没问题,也可以批量执行.SQL没问题,应该是配置的问题. 在网上查询和很多资料, ...

Mybatis之批量更新操作

更新单条记录 UPDATE course SET name = 'course1' WHERE id = 'id1'; 更新多条记录的同一个字段为同一个值 UPDATE course SET name ...

mybatis 实现批量更新

更新单条记录 1 UPDATE course SET name = 'course1' WHERE id = 'id1'; 更新多条记录的同一个字段为同一个值 1 UPDATE course SET  ...

SpringBoot&plus;Mybatis&plus;Druid批量更新 multi-statement not allow异常

本文链接:https://blog.csdn.net/weixin_43947588/article/details/90109325 注:该文是本博主记录学习之用,没有太多详细的讲解,敬请谅解! ...

随机推荐

Echart - 地图散点图&lpar;服务网点图&rpar;的实现

Echart是百度开发的一个javascript图表库,可以流程运行于pc和移动端,底层依赖轻量级的 Canvas 类库 ZRender. ECharts 提供了常规的折线图,柱状图,散点图,饼图,K ...

MySQL的 explain 解析

EXPLAIN 的每个输出行提供一个表的相关信息,并且每个行包括下面的列: 项 说明 id MySQL Query Optimizer 选定的执行计划中查询的序列号.表示查询中执行 select 子句 ...

C&num;之设计模式之六大原则(转载)

设计模式之六大原则(转载) 关于设计模式的六大设计原则的资料网上很多,但是很多地方解释地都太过于笼统化,我也找了很多资料来看,发现CSDN上有几篇关于设计模式的六大原则讲述的比较通俗易懂,因此转载过来 ...

DataCleaner(4&period;5)第二章

Chapter 2. Getting started with DataCleaner desktop Table of Contents |--Installing the desktop appl ...

Intel x86&lowbar;64 Architecture Background 1

首先讲一下什么是Intel x86,x86是指intel的开发的一种32位指令集,从386开始时代开始的一直沿用至今,是一种cisc指令集.x84_64是x86 CPU开始迈向64位的时候,有2选择: ...

jQuery 选择器 筛选器 样式操作 文本操作 属性操作 文档处理 事件 动画效果 插件 each、data、Ajax

jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方 ...

webpack快速入门——插件配置:HTML文件的发布

1.把dist中的index.html复制到src目录中,并去掉我们引入的js 2.在webpack.config.js中引入 const htmlPlugin = require('html-web ...

Codeforces Round &num;500 &lpar;Div&period; 2&rpar; D - Chemical table

首先我们如果满足三缺一,那么必有同行和同列的点 如果两行有同列的数,我们可以设想,他们最后会全部填充成为两者啥都有的情况 显然这个是个并查集 现在我们有了很多集合,每个集合自己可以进行三缺一操作,但是 ...

表格隔行变色&lowbar;CSS实现鼠标悬停高亮

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值