我正在使用MyBatis(mybatis-spring-boot-starter 2.0),我想使用Java sqlBuilder将值列表插入表中。我知道如何用Java编写sqlBuilder来存储单个记录。但是如何为记录列表编写sqlBuilder?
映射器界面(单记录):
@InsertProvider(method = "insert", type = TestSqlBuilder.class)
@Options(useGeneratedKeys = true, keyColumn = "id", keyProperty = "id")
public void save(final TestVO testVO );
TestSqlBuilder.java(单记录):
以下用于插入单个TestVO值的方法。
public String insert() {
return new SQL() {
{
INSERT_INTO("TEST")
.VALUES("COL1", "#{col1}")
.VALUES("COL2", "#{col2}")
.VALUES("COL3", "#{col3}")
.VALUES("COL3", "#{col4}")
.toString();
}
}.toString();
}
现在为记录列表,如何编写sqlBuilder。
否则我们如何将以下内容转换为sqlBuilder Java代码
@Insert("<script> "
+ "insert into sys_user "
+ "(t_id, t_name, t_age) "
+ "values "
+ "<foreach collection='list' item='item' "
+ " index='index' separator=','> "
+ "(#{item.id}, #{item.name}, #{item.age}) "
+ "</foreach> "
+ "</script> ")
int insertUserListWithForeach(List<User> list);