Mybatis通过注解方式实现批量插入数据库

MyBatis中通过xml文件配置数据库批量操作的文章很多,比如这篇,但探讨如何通过注解配置实现同样效果的文章却很少,官方文档上也没找到相关的用法,其中的难点在于如何处理List或者Map类型的参数。不过这种方法终于被我试出来并且测试通过,现以批量插入为例,来演示一下怎样通过注解来实现数据库的批量操作:

/*User.java*/ public class User { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } /*UserDAO.java*/ public interface UserDAO { @InsertProvider(type = UserDAOProvider.class, method = "insertAll") void insertAll(@Param("list") List<User> users); } /*UserDAOProvider.java*/ public class UserDAOProvider { public String insertAll(Map map) { List<User> users = (List<User>) map.get("list"); StringBuilder sb = new StringBuilder(); sb.append("INSERT INTO User "); sb.append("(id, name) "); sb.append("VALUES "); MessageFormat mf = new MessageFormat("(null, #\'{\'list[{0}].name})"); for (int i = 0; i < users.size(); i++) { sb.append(mf.format(new Object[]{i})); if (i < users.size() - 1) { sb.append(","); } } return sb.toString(); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwwgz.html