mysql update mapper_mybatis批量update(mysql)
批量插入:insert into testTable (id,content)values(#{item.id},#{item.content},)Mapper文件中的写法UPDATE test_tableSET c_a = #{item.ca},c_b = #{item.cb}WHERE id = #{item.id}这样写总是报错,调试了很长时间也没找到问题原因最后找到这里http://my.
批量插入:
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
更多推荐
所有评论(0)