@@ -28,6 +28,7 @@ import org.mybatis.dynamic.sql.insert.render.MultiRowInsertStatementProvider
28
28
import org.mybatis.dynamic.sql.select.CountDSL
29
29
import org.mybatis.dynamic.sql.select.render.SelectStatementProvider
30
30
import org.mybatis.dynamic.sql.update.render.UpdateStatementProvider
31
+ import org.mybatis.dynamic.sql.util.kotlin.BatchInsertCompleter
31
32
import org.mybatis.dynamic.sql.util.kotlin.CountCompleter
32
33
import org.mybatis.dynamic.sql.util.kotlin.DeleteCompleter
33
34
import org.mybatis.dynamic.sql.util.kotlin.GeneralInsertCompleter
@@ -66,6 +67,12 @@ fun NamedParameterJdbcTemplate.deleteFrom(table: SqlTable, completer: DeleteComp
66
67
fun <T > NamedParameterJdbcTemplate.insert (insertStatement : BatchInsert <T >): IntArray =
67
68
batchUpdate(insertStatement.insertStatementSQL, SqlParameterSourceUtils .createBatch(insertStatement.records))
68
69
70
+ fun <T > NamedParameterJdbcTemplate.insert (vararg records : T ) =
71
+ insert(records.asList())
72
+
73
+ fun <T > NamedParameterJdbcTemplate.insert (records : List <T >) =
74
+ BatchInsertHelper (records, this )
75
+
69
76
// single record insert
70
77
fun <T > NamedParameterJdbcTemplate.insert (insertStatement : InsertStatementProvider <T >) =
71
78
update(insertStatement.insertStatement, BeanPropertySqlParameterSource (insertStatement.record))
@@ -204,6 +211,12 @@ class SelectOneMapperGatherer(
204
211
template.selectOne(selectStatement, rowMapper)
205
212
}
206
213
214
+ @MyBatisDslMarker
215
+ class BatchInsertHelper <T >(private val records : List <T >, private val template : NamedParameterJdbcTemplate ) {
216
+ fun into (table : SqlTable , completer : BatchInsertCompleter <T >) =
217
+ template.insert(SqlBuilder .insert(records).into(table, completer))
218
+ }
219
+
207
220
@MyBatisDslMarker
208
221
class MultiRowInsertHelper <T >(private val records : List <T >, private val template : NamedParameterJdbcTemplate ) {
209
222
fun into (table : SqlTable , completer : MultiRowInsertCompleter <T >) =
0 commit comments