Mybatis 动态表名+Map参数传递+批量操作

需求:之前项目一个变动,需要对3张mysql数据库表数据进行清洗,3张表表名不同,表结构完全相同,需要对这3张表进行相同的增、改、查动作,一开始比较紧急先对一张表进行操作,后来复制了3个一样的 service、dao、mapper等。后来对代码进行优化,研究了一下动态表名的处理。
1,查询操作:
  • 查询操作只需要传入动态表名的时候,传递参数仍然是map
  • mapper.xml内,需要使用statementType="STATEMENT",采用非预编译模式
  • mapper.xml内,动态表名的获取使用 ${tableName}

2,批量插入操作:
  • 查询操作只需要传入动态表名的时候,传递参数仍然是map
  • mapper.xml内,不需要使用statementType="STATEMENT",否则会在运行时报错提示语法错误(具体原因不是很清楚)。
  • 动态表名的获取使用 ${tableName}, 而insert 的 collection 属性名为传入参数的map内的key名,不需要任何修饰符。
  • list内容使用 #{item.guid}来获取,而不是$。


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页