使用SQL Builder的MyBatis多行INSERT

时间:2019-06-21 07:02:54

标签: mybatis spring-mybatis

我正在使用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);

0 个答案:

没有答案