mysql update mapper_mybatis批量update(mysql)
批量插入:
insert into testTable (id,content)
values(
#{item.id},
#{item.content},
)
Mapper文件中的写法
UPDATE test_table
SET c_a = #{item.ca},
c_b = #{item.cb}
WHERE id = #{item.id}
这样写总是报错,调试了很长时间也没找到问题原因
最后找到这里http://my.oschina.net/jsonavaj/blog/265112 找到了答案
数据库的链接必须加上但是数据库连接必须加上 allowMultiQueries=true
url="jdbc:mysql://localhost:3306/testDatabase?allowMultiQueries=true" />
http://www.cnblogs.com/modprobe/p/4683274.html
利用MyBatis对数据库进行DDL(create table,drop table等等)操作
【具体代码】
1、mapper接口文件内容如下
/*** 执行备份数据库相关表的Mapper*/
public interfaceBackupDataMapper {/*** 修改数据库的表名字
*@paramoriginalTableName
*@paramnewTableName
*@return
*/
int alterTableName(@Param("originalTableName") String originalTableName,
@Param("newTableName") String newTableName);/*** truncate指定数据库表的数据
*@paramtableName
*@return
*/
int truncateTable(@Param("tableName") String tableName);/*** 根据传入的表明,创建新的表并且将原表的数据插入到新的Occur表中
*@paramnewTableName
*@paramoriginalTableName*/
void createNewTableAndInsertData(@Param("newTableName") String newTableName,
@Param("originalTableName") String originalTableName);/*** 统计某张表中的总数据条数。
*@paramtableName
*@return指定表中的总记录条数。*/
int getRecordCount(@Param("tableName") String tableName);/*** 获得当前数据库的名字
*@return
*/String getCurDataBaseName();/*** 从指定数据库中,查询是否存在某张表
*@paramdataBaseName
*@paramtableName
*@return
*/String isTargetTableExistInDB(@Param("dataBaseName") String dataBaseName,
@Param("tableName") String tableName);
}
2、mapper.xml文件内容如下
alter table ${originalTableName} rename ${newTableName}
truncate table ${tableName}
create table ${newTableName} as select * from ${originalTableName}
select count(1) from ${tableName}
select database();
SELECT table_name FROM information_schema.tables WHERE table_schema = #{dataBaseName} and TABLE_NAME = #{tableName}
3、注意点
在传入“表名”作为参数时,一定要使用“${tableName}”的格式,而不能使用“#{tableName}”的格式。因为表名是sql语法要求的一部分,而不是参数
http://www.cnblogs.com/zjrodger/p/5567085.html
mysql update mapper_mybatis批量update(mysql)相关推荐
- 很多条update语句mysql优化_MySQL批量update语句优化
对MySQL中的表进行批量update的时候,如果每个记录用一个update语句,5000条记录的话,大概需要30秒钟.下面采用的case when方法可以把5000条update拼成一条: Upda ...
- 批量 杀掉 mysql 连接_批量杀死MySQL连接的四种方法详解
方法一 通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令.复制代码 代码如下:mysql> ...
- mysql uroot e_批量 kill mysql 连接
事故重现,并且加入一些后期想到的想法作为演义. 今天 mysql 服务器负载过高, 主库上主要是写的操作,首先看有没有锁表的,发现没有.mysql -uroot -e "show proce ...
- 批量 杀掉 mysql 连接_批量杀死MySQL连接的几种方法
方法一 通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令. mysql> select c ...
- mysql用update select批量处理数据
mysql用update select批量处理数据 接手了一个项目,在实际的使用中发现服务器的负载很高! 于是在服务器上使用 Top 命令查看CPU和内存的使用情况,发现mysql占用的CPU最高.于 ...
- mysql更新多字段sql_sql的update语句 批量更新某字段
Mysql: 1 有时候要实现字段的批量替换 update 表名 set 字段A = replace(字段A ,"png","jpg" ); 2 批量拼接字符串 ...
- mysql 批量update sql_批量更新sql |批量update sql
zencart批量更新后台邮箱地址sql zencart批量更新后台邮箱地址sql UPDATE `configuration` SET `configuration_value` = '新邮箱地址' ...
- go语言批量写入mysql, 记录不存在insert, 已存在则update
go语言批量写入mysql, 记录不存在insert, 已存在则update, 拼sql有点麻烦,但是处理速度非常快. func WrapStringInSymbol(Symbo1Start , st ...
- MySQL批量update数据(更新的数据值不同)
(一)纯mysql: UPDATE my_table SETstatus = CASE idWHEN 1 THEN 3WHEN 2 THEN 4WHEN 3 THEN 5END,title = CA ...
最新文章
- 使用OpenApi弹性管理云服务器ECS
- 1-5 三整数排序(算法竞赛入门经典)
- 11个非常漂亮动物为主题的高品质图标集
- 汉字转UNICODE?
- 技术三板斧:关于技术规划、管理、架构的思考
- android开发 存储权限,Android openFileOutput – 没有创建存储的权限
- 湖仓一体是否会掀起金融业的下一波数字浪潮?
- JAVA——利用wait和notify实现生产者和消费者
- C# 虹软离线SDK引擎 人脸识别
- Python使用matplotlib可视化模拟学生成绩饼图
- STM32选型与命名规则
- 支付系统---银行卡收单业务
- Opencv学习笔记完整版
- Summary of Statistics for Interview
- 阿里云发布的数加是什么鬼
- Java+JVM+MySQL+数据结构与算法,一文说清!
- Android Activity的启动流程分析:以Launcher启动一个Activity为例,分析应用进程的创建、Activity的启动,以及他们和AMS之间的交互
- 微信小程序—仿淘宝热搜词在搜索框中轮播功能
- 线性代数 --- 投影Projection 二(投影即分量)
- 免费无限次的API 接口