使用 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 批处理,消除了多次往返数据库。另一个好处是使用准备好的语句,如果与其中有多个插入的大型生成语句相比,这会使语句更快。
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 批处理,消除了多次往返数据库。另一个好处是使用准备好的语句,如果与其中有多个插入的大型生成语句相比,这会使语句更快。