批量插入:
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接口文件内容如下
public interfaceBackupDataMapper {
int alterTableName(@Param("originalTableName") String originalTableName,
@Param("newTableName") String newTableName);
int truncateTable(@Param("tableName") String tableName);
void createNewTableAndInsertData(@Param("newTableName") String newTableName,
@Param("originalTableName") String originalTableName);
int getRecordCount(@Param("tableName") String tableName);String getCurDataBaseName();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