Многострочная вставка MyBatis с использованием SQL Builder - PullRequest
0 голосов
/ 21 июня 2019

Я использую MyBatis (mybatis-spring-boot-starter 2.0), я хочу вставить список значений в таблицу, используя java sqlBuilder .Я знаю, как написать sqlBuilder в Java для хранения одной записи.Но как написать sqlBuilder для Списка записей?

Интерфейс Mapper (Отдельная запись):

@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.

Иначе, как мы можем преобразовать приведенный ниже код Java sqlBuilder

@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);
...