diff --git a/mybatis-flex-kotlin/src/main/java/com/mybatisflex/kotlin/extensions/db/DbExtensions.kt b/mybatis-flex-kotlin/src/main/java/com/mybatisflex/kotlin/extensions/db/DbExtensions.kt index bc69eed6..0d0dffbd 100644 --- a/mybatis-flex-kotlin/src/main/java/com/mybatisflex/kotlin/extensions/db/DbExtensions.kt +++ b/mybatis-flex-kotlin/src/main/java/com/mybatisflex/kotlin/extensions/db/DbExtensions.kt @@ -115,30 +115,15 @@ object DB { return Db.insertBySql(sql, *args) } - fun insertBatch(schema: String?, tableName: String?, rows: Collection): IntArray { - return insertBatch(schema, tableName, rows, rows.size) - } - - fun insertBatch(tableName: String?, rows: Collection): IntArray { - return insertBatch(null as String?, tableName, rows, rows.size) - } - - fun insertBatch(schema: String?, tableName: String?, rows: Collection, batchSize: Int): IntArray { + fun insertBatch(schema: String?, tableName: String?, rows: Collection, batchSize: Int = rows.size): IntArray { return Db.insertBatch(schema, tableName, rows, batchSize) } - fun insertBatch(tableName: String?, rows: Collection, batchSize: Int): IntArray { - return Db.insertBatch(tableName, rows) - } fun insertBatchWithFirstRowColumns(schema: String?, tableName: String?, rows: List?): Int { return Db.insertBatchWithFirstRowColumns(schema, tableName, rows) } - fun insertBatchWithFirstRowColumns(tableName: String?, rows: List?): Int { - return Db.insertBatchWithFirstRowColumns(null as String?, tableName, rows) - } - fun deleteBySql(sql: String?, vararg args: Any?): Int { return Db.deleteBySql(sql, *args) } @@ -163,9 +148,6 @@ object DB { return Db.deleteBatchByIds(schema, tableName, primaryKey, ids) } - fun deleteBatchByIds(tableName: String?, primaryKey: String?, ids: Collection<*>?): Int { - return Db.deleteBatchByIds(null as String?, tableName, primaryKey, ids) - } fun deleteByMap(schema: String?, tableName: String?, whereColumns: Map?): Int { return Db.deleteByQuery( @@ -174,13 +156,6 @@ object DB { ) } - fun deleteByMap(tableName: String?, whereColumns: Map?): Int { - return Db.deleteByQuery( - null as String?, tableName, QueryWrapper() - .where(whereColumns) - ) - } - fun deleteByCondition(schema: String?, tableName: String?, condition: QueryCondition?): Int { return Db.deleteByQuery( schema, tableName, QueryWrapper() @@ -188,21 +163,11 @@ object DB { ) } - fun deleteByCondition(tableName: String?, condition: QueryCondition?): Int { - return Db.deleteByQuery( - null as String?, tableName, QueryWrapper() - .where(condition) - ) - } fun deleteByQuery(schema: String?, tableName: String?, queryWrapper: QueryWrapper?): Int { return Db.deleteByQuery(schema, tableName, queryWrapper) } - fun deleteByQuery(tableName: String?, queryWrapper: QueryWrapper?): Int { - return Db.deleteByQuery(null as String?, tableName, queryWrapper) - } - fun updateBySql(sql: String?, vararg args: Any?): Int { return Db.updateBySql(sql, *args) } @@ -216,10 +181,6 @@ object DB { return Db.updateById(schema, tableName, row) } - fun updateById(tableName: String?, row: Row?): Int { - return Db.updateById(null as String?, tableName, row) - } - fun updateByMap(schema: String?, tableName: String?, data: Row?, whereColumns: Map?): Int { return Db.updateByQuery( schema, tableName, data, QueryWrapper() @@ -227,12 +188,6 @@ object DB { ) } - fun updateByMap(tableName: String?, data: Row?, whereColumns: Map?): Int { - return Db.updateByQuery( - null as String?, tableName, data, QueryWrapper() - .where(whereColumns) - ) - } fun updateByCondition(schema: String?, tableName: String?, data: Row?, condition: QueryCondition?): Int { return Db.updateByQuery( @@ -241,28 +196,14 @@ object DB { ) } - fun updateByCondition(tableName: String?, data: Row?, condition: QueryCondition?): Int { - return Db.updateByQuery( - null as String?, tableName, data, QueryWrapper() - .where(condition) - ) - } - fun updateByQuery(schema: String?, tableName: String?, data: Row?, queryWrapper: QueryWrapper?): Int { return Db.updateByQuery(schema, tableName, data, queryWrapper) } - fun updateByQuery(tableName: String?, data: Row?, queryWrapper: QueryWrapper?): Int { - return Db.updateByQuery(null as String?, tableName, data, queryWrapper) - } - fun updateBatchById(schema: String?, tableName: String?, rows: List?): Int { return Db.updateBatchById(schema, tableName, rows) } - fun updateBatchById(tableName: String?, rows: List?): Int { - return Db.updateBatchById(null as String?, tableName, rows) - } fun updateEntitiesBatch(entities: Collection?, batchSize: Int): Int { return Db.updateEntitiesBatch(entities, batchSize) @@ -282,15 +223,6 @@ object DB { return Db.updateNumberAddByQuery(schema, tableName, fieldName, value, queryWrapper) } - fun updateNumberAddByQuery( - tableName: String?, - fieldName: String?, - value: Number?, - queryWrapper: QueryWrapper? - ): Int { - return Db.updateNumberAddByQuery(null as String?, tableName, fieldName, value, queryWrapper) - } - fun executeBatch( totalSize: Int, batchSize: Int, @@ -309,18 +241,10 @@ object DB { return Db.selectOneById(schema, tableName, row) } - fun selectOneById(tableName: String?, row: Row?): Row { - return Db.selectOneById(null as String?, tableName, row) - } - fun selectOneById(schema: String?, tableName: String?, primaryKey: String?, id: Any?): Row { return Db.selectOneById(schema, tableName, primaryKey, id) } - fun selectOneById(tableName: String?, primaryKey: String?, id: Any?): Row { - return Db.selectOneById(null as String?, tableName, primaryKey, id) - } - fun selectOneByMap(schema: String?, tableName: String?, whereColumns: Map?): Row { return Db.selectOneByQuery( schema, tableName, QueryWrapper() @@ -328,12 +252,6 @@ object DB { ) } - fun selectOneByMap(tableName: String?, whereColumns: Map?): Row { - return Db.selectOneByQuery( - null as String?, tableName, QueryWrapper().where(whereColumns).limit(1) - ) - } - fun selectOneByCondition(schema: String?, tableName: String?, condition: QueryCondition?): Row { return Db.selectOneByQuery( schema, tableName, QueryWrapper() @@ -341,21 +259,10 @@ object DB { ) } - fun selectOneByCondition(tableName: String?, condition: QueryCondition?): Row { - return Db.selectOneByQuery( - null as String?, tableName, QueryWrapper() - .where(condition).limit(1) - ) - } - fun selectOneByQuery(schema: String?, tableName: String?, queryWrapper: QueryWrapper?): Row { return Db.selectOneByQuery(schema, tableName, queryWrapper) } - fun selectOneByQuery(tableName: String?, queryWrapper: QueryWrapper?): Row { - return Db.selectOneByQuery(null as String?, tableName, queryWrapper) - } - fun selectOneByQuery(queryWrapper: QueryWrapper?): Row { return Db.selectOneByQuery(queryWrapper) } @@ -401,21 +308,10 @@ object DB { ) } - fun selectListByCondition(tableName: String?, condition: QueryCondition?, count: Int): List { - return Db.selectListByQuery( - null as String?, tableName, QueryWrapper() - .where(condition).limit(count) - ) - } - fun selectListByQuery(schema: String?, tableName: String?, queryWrapper: QueryWrapper?): List { return Db.selectListByQuery(schema, tableName, queryWrapper) } - fun selectListByQuery(tableName: String?, queryWrapper: QueryWrapper?): List { - return Db.selectListByQuery(null as String?, tableName, queryWrapper) - } - fun selectListByQuery(queryWrapper: QueryWrapper?): List { return Db.selectListByQuery(queryWrapper) } @@ -424,9 +320,6 @@ object DB { return Db.selectAll(schema, tableName) } - fun selectAll(tableName: String?): List { - return Db.selectAll(null as String?, tableName) - } fun selectObject(sql: String?, vararg args: Any?): Any { return Db.selectObject(sql, *args) @@ -436,10 +329,6 @@ object DB { return Db.selectObject(schema, tableName, queryWrapper) } - fun selectObject(tableName: String?, queryWrapper: QueryWrapper?): Any { - return Db.selectObject(null as String?, tableName, queryWrapper) - } - fun selectObject(queryWrapper: QueryWrapper?): Any { return Db.selectObject(queryWrapper) } @@ -481,10 +370,6 @@ object DB { return Db.selectCountByQuery(schema, tableName, queryWrapper) } - fun selectCountByQuery(tableName: String?, queryWrapper: QueryWrapper?): Long { - return Db.selectCountByQuery(null as String?, tableName, queryWrapper) - } - fun selectCountByQuery(queryWrapper: QueryWrapper?): Long = Db.selectCountByQuery(queryWrapper) @@ -497,8 +382,12 @@ object DB { ): Page = Db.paginate(schema, tableName, Page(pageNumber, pageSize), QueryWrapper.create().where(condition)) - fun paginate(tableName: String?, pageNumber: Int, pageSize: Int, condition: QueryCondition?): Page = - Db.paginate(tableName, pageNumber, pageSize, condition) + fun paginate( + tableName: String?, + pageNumber: Int, + pageSize: Int, + condition: QueryCondition? + ): Page = Db.paginate(tableName, pageNumber, pageSize, condition) fun paginate( @@ -508,11 +397,8 @@ object DB { pageSize: Int, totalRow: Int, condition: QueryCondition? - ): Page { - return Db.paginate( - schema, tableName, pageNumber, pageSize, totalRow, condition - ) - } + ): Page = Db.paginate(schema, tableName, pageNumber, pageSize, totalRow, condition) + fun paginate( tableName: String?, @@ -530,8 +416,11 @@ object DB { queryWrapper: QueryWrapper? ): Page = Db.paginate(schema, tableName, pageNumber, pageSize, queryWrapper) - fun paginate(tableName: String?, pageNumber: Int, pageSize: Int, queryWrapper: QueryWrapper?): Page = - Db.paginate(tableName, pageNumber, pageSize, queryWrapper) + fun paginate(tableName: String?, + pageNumber: Int, + pageSize: Int, + queryWrapper: QueryWrapper? + ): Page = Db.paginate(tableName, pageNumber, pageSize, queryWrapper) fun paginate( schema: String?, @@ -540,10 +429,8 @@ object DB { pageSize: Int, totalRow: Int, queryWrapper: QueryWrapper? - ): Page { - return Db - .paginate(schema, tableName, pageNumber, pageSize, totalRow, queryWrapper) - } + ): Page = Db.paginate(schema, tableName, pageNumber, pageSize, totalRow, queryWrapper) + fun paginate( tableName: String?, @@ -551,35 +438,20 @@ object DB { pageSize: Int, totalRow: Int, queryWrapper: QueryWrapper? - ): Page { - return Db - .paginate(tableName, pageNumber, pageSize, totalRow, queryWrapper) - } + ): Page = Db.paginate(tableName, pageNumber, pageSize, totalRow, queryWrapper) - fun paginate(schema: String?, tableName: String?, page: Page?, queryWrapper: QueryWrapper?): Page { - return Db.paginate(schema, tableName, page, queryWrapper) - } - fun paginate(tableName: String?, page: Page?, queryWrapper: QueryWrapper?): Page { - return Db.paginate(tableName, page, queryWrapper) - } + fun paginate(schema: String?, tableName: String?, page: Page?, queryWrapper: QueryWrapper?): Page = Db.paginate(schema, tableName, page, queryWrapper) - fun tx(supplier: Supplier?): Boolean { - return tx(supplier, Propagation.REQUIRED) - } + fun paginate(tableName: String?, page: Page?, queryWrapper: QueryWrapper?): Page = Db.paginate(tableName, page, queryWrapper) - fun tx(supplier: Supplier?, propagation: Propagation?): Boolean { - return Db.tx(supplier, propagation) - } + fun tx(supplier: Supplier?): Boolean = tx(supplier, Propagation.REQUIRED) - fun txWithResult(supplier: Supplier?): T { - return txWithResult(supplier, Propagation.REQUIRED) - } + fun tx(supplier: Supplier?, propagation: Propagation?): Boolean = Db.tx(supplier, propagation) - fun txWithResult(supplier: Supplier?, propagation: Propagation?): T { - return Db.txWithResult(supplier, propagation) - } + fun txWithResult(supplier: Supplier?): T =txWithResult(supplier, Propagation.REQUIRED) + fun txWithResult(supplier: Supplier?, propagation: Propagation?): T = Db.txWithResult(supplier, propagation) } diff --git a/mybatis-flex-kotlin/src/test/java/com/mybatisflex/kotlintest/ExtensionTest.kt b/mybatis-flex-kotlin/src/test/java/com/mybatisflex/kotlintest/ExtensionTest.kt index 4033a732..22aa2f10 100755 --- a/mybatis-flex-kotlin/src/test/java/com/mybatisflex/kotlintest/ExtensionTest.kt +++ b/mybatis-flex-kotlin/src/test/java/com/mybatisflex/kotlintest/ExtensionTest.kt @@ -1,7 +1,5 @@ package com.myba -import com.mybatisflex.kotlin.extensions.entry.batchDeleteById - import com.mybatisflex.core.BaseMapper import com.mybatisflex.core.MybatisFlexBootstrap import com.mybatisflex.core.audit.AuditManager @@ -9,12 +7,11 @@ import com.mybatisflex.core.audit.ConsoleMessageCollector import com.mybatisflex.kotlin.entry.Entry import com.mybatisflex.kotlin.extensions.db.DB import com.mybatisflex.kotlin.extensions.db.DB.filter -import com.mybatisflex.kotlin.extensions.entry.all -import com.mybatisflex.kotlin.extensions.entry.batchInsert -import com.mybatisflex.kotlin.extensions.entry.batchUpdate +import com.mybatisflex.kotlin.extensions.entry.* import com.mybatisflex.kotlin.extensions.mapper.queryList import com.mybatisflex.kotlin.extensions.sql.* import com.mybatisflex.kotlintest.entry.Account +import com.mybatisflex.kotlintest.entry.table.AccountTableDef import com.mybatisflex.kotlintest.entry.table.AccountTableDef.ACCOUNT import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType @@ -35,30 +32,44 @@ fun main() { .addMapper(AccountMapper::class.java) .setDataSource(dataSource) .start() + filter { ACCOUNT.AGE `=` 12 or `if`(true) { ACCOUNT.ID `in` listOf(1, 2) } - }.stream().peek(::println).peek { it.id = it.id!!.plus(2) }.forEach(Entry::save) + }.stream().peek(::println).peek { it.id = it.id.plus(2) }.forEach(Entry::save) + //使用表对象filter或者DB对象有两个泛型的filter方法时方法体内this为表对象无需XXX.AA调用,直接AA + ACCOUNT.filter { + AGE `=` 12 or + `if`(true) { ID `in` listOf(1, 2) } + }.stream().peek(::println).peek { it.id = it.id.plus(2) }.forEach(Entry::save) + println("保存后————————") DB.mapper().findByAge(18,1,2).stream().peek { println(it) }.forEach(Entry::deleteById) + println("删除后————————") ACCOUNT.all().stream().peek { println(it) }.map { it.userName = "sa" it }.forEach(Entry::update) println("更新后————————") + ACCOUNT.all().stream().peek { println(it) }.map { - it.id = it.id!!.plus(5) + it.id = it.id.plus(5) it.userName = "423423" it }.toList().batchInsert() + println("批量插入后————————") ACCOUNT.all().stream().peek { println(it) }.toList().filter { it.id!!.rem(2) == 0 }.batchDeleteById() + println("批量删除后————————") - ACCOUNT.all().stream().peek { println(it) }.toList().filter { it.id!!.rem(3) == 0 }.map { it.userName = "哈哈" + //使用DB对象查询时无需指定from表 + DB.query {from(ACCOUNT)}.stream().peek { println(it) }.toList().filter { it.id!!.rem(3) == 0 }.map { it.userName = "哈哈" it }.batchUpdate() + println("批量更新后————————") - ACCOUNT.all().stream().forEach { println(it) } + //使用表对象查询时无需指定from表 + ACCOUNT.query {}.forEach(::println) } - +//接口里面写方法时打这个注解才能生成Default方法否则会单独生成一个类导致报错 @JvmDefaultWithCompatibility interface AccountMapper : BaseMapper { diff --git a/mybatis-flex-kotlin/src/test/java/com/mybatisflex/kotlintest/entry/Account.kt b/mybatis-flex-kotlin/src/test/java/com/mybatisflex/kotlintest/entry/Account.kt index 22242832..4de61fee 100755 --- a/mybatis-flex-kotlin/src/test/java/com/mybatisflex/kotlintest/entry/Account.kt +++ b/mybatis-flex-kotlin/src/test/java/com/mybatisflex/kotlintest/entry/Account.kt @@ -14,7 +14,7 @@ import java.util.* */ @Table(value = "tb_account", onUpdate = [NoneListener::class]) data class Account( - @Id var id: Int?, + @Id var id: Int, @Column("u_name") var userName: String?, var age: Int?, var birthday: Date?,