使用 List - Java 和 MyBatis 更新 SQL 数据库

Updating SQL db with List - Java and MyBatis

MyBatis可以插入列表吗?

这是 Java 代码:

@Override
    public void createSubjectPrivileges(final List<SubjectPrivilegesFormDTO> subjectPrivilegesFormDTOList) {
        this.auditingSqlSession.update("createSubjectPrivileges",3,subjectPrivilegesFormDTOList);
    }

如果可能的话,MyBatis 代码是什么?

<insert id="createSubjectPrivileges" parameterType="?">
        insert into x (
        a,
        b,
        c
        ) values (
        #{d, jdbcType=NUMERIC},
        #{e, jdbcType=NUMERIC},
        #{f, jdbcType=NUMERIC}
        )
    </insert>

我总是可以遍历 Java 中的列表并每次插入一个,但从我的角度来看,这在性能方面不是很好。

提前致谢。

你可以在mybatis中使用动态sql生成facilities来生成插入列表的语句,但这不是一个好的方法。

在java中做循环,用BatchExecutor is a recommended的方式做批处理。批处理执行器使用 JDBC 批处理,消除了多次往返数据库。另一个好处是使用准备好的语句,如果与其中有多个插入的大型生成语句相比,这会使语句更快。