/* * ******************************************************************************************************************** * * iFHS7. * ;BBMBMBMc rZMBMBR BMB * MBEr:;PBM, 7MBMMEOBB: BBB RBW * XK: BO SB. :SZ MBM. c;; ir BBM :FFr :SSF: ;xBMB:r iuGXv. i:. iF2; * DBBM0r. :D S7 ;XMBMB GMBMu. MBM: BMB MBMBBBMBMS WMBMBMBBK MBMBMBM BMBRBMBW .MBMBMBMBB * :JMRMMD .. , 1MMRM1; ;MBMBBR: MBM ;MB: BMB: MBM. RMBr sBMH BM0 UMB, BMB. KMBv * ;. XOW B1; :uM: 1RE, i .2BMBs rMB. MBO MBO JMB; MBB MBM BBS 7MBMBOBM: MBW :BMc * OBRJ.SEE MRDOWOR, 3DE:7OBM . ;BMB RMR7BM BMB MBB. BMB ,BMR .BBZ MMB rMB, BMM rMB7 * :FBRO0D0 RKXSXPR. JOKOOMPi BMBSSWBMB; BMBB: MBMB0ZMBMS .BMBOXRBMB MBMDE RBM2;SMBM; MBB xBM2 * iZGE O0SHSPO. uGZ7. sBMBMBDL :BMO OZu:BMBK, rRBMB0; ,EBMB xBMBr:ER. RDU :OO; * ,BZ, 1D0 RPSFHXR. xWZ .SMr . .BBB * :0BMRDG RESSSKR. 2WOMBW; BMBMR * i0BM: SWKHKGO MBDv * .UB OOGDM. MK, Copyright (c) 2015-2019. 斯伯坦机器人 * , XMW .. * r All rights reserved. * * ******************************************************************************************************************** */ package com.persagy.mybatis import com.persagy.database.SFilter import com.persagy.database.SGroup import com.persagy.database.SQueryBuilder import org.apache.ibatis.annotations.* /** * 基础数据库操作影射器 * * @author 庞利祥 */ interface IBaseMapper { /** * 根据条件删除 * * @param filterArgs 过滤条件 * @param whereArgs whereArgs参数值,由SQlProvider填充 */ @DeleteProvider(type = SSqlProvider::class, method = "delete") fun delete(@Param("entityClass")entityClass: Class<*>, @Param("filterArgs")filterArgs: List, @Param("whereArgs")whereArgs: Map): Boolean /** * 删除所有记录 */ @DeleteProvider(type = SSqlProvider::class, method = "deleteAll") fun deleteAll(@Param("entityClass")entityClass: Class<*>): Boolean /** * 在数据库中插入实体 * * @param entity 插入数据库的实体 * @return 插入是否成功 */ @InsertProvider(type = SSqlProvider::class, method = "insert") @Options(useGeneratedKeys = true, keyProperty = "entity._id") fun insert(@Param("entityClass")entityClass: Class<*>, @Param("entity")entity: Map): Boolean /** * 在数据库中插入实体 * * @param entity 插入数据库的实体 * @return 插入是否成功 */ @InsertProvider(type = SSqlProvider::class, method = "replace") fun replace(@Param("entityClass")entityClass: Class<*>, @Param("entity")entity: Map, @Param("keyColumnList")keyColumnList: ArrayList): Boolean /** * 根据条件更新 * * @param entity 更新值 * @param projection 字段映射 * @param filterArgs 过滤条件 * @param whereArgs whereArgs参数值,由SQlProvider填充 */ @UpdateProvider(type = SSqlProvider::class, method = "update") fun update(@Param("entityClass")entityClass: Class<*>, @Param("entity")entity: Map, @Param("projection")projection: ArrayList?, @Param("filterArgs")filterArgs: List?, @Param("whereArgs")whereArgs: Map): Boolean /** * 执行查询操作 * * @param builder 查询查询构造器 * @param whereArgs whereArgs参数值,由SQlProvider填充 * @return 查询到的记录 */ @SelectProvider(type = SSqlProvider::class, method = "execQuery") fun execQuery(@Param("entityClass")entityClass: Class<*>, @Param("builder")builder: SQueryBuilder, @Param("whereArgs")whereArgs: Map): ArrayList> /** * 执行查询操作 * * @param builder 查询查询构造器 * @param whereArgs whereArgs参数值,由SQlProvider填充 * @return 查询到的记录 */ @SelectProvider(type = SSqlProvider::class, method = "execCount") fun execCount(@Param("entityClass")entityClass: Class<*>, @Param("builder")builder: SQueryBuilder, @Param("whereArgs")whereArgs: Map): ArrayList //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 级联操作相关 /** * 查询级联关系 * * @param table 表名 * @param id1 对象表ID字段名 * @param id2 级联对象ID字段名 * @param self 自身级联 * @param filter 附加过滤条件 * @param idList 对象ID列表 * @return 关系列表 */ @SelectProvider(type = SSqlProvider::class, method = "relationQuery") fun relationQuery(@Param("table")table: String, @Param("id1")id1: String, @Param("id2")id2: String, @Param("self")self: Boolean, @Param("filter")filter: String, @Param("idList")idList: ArrayList, @Param("whereArgs")whereArgs: Map): ArrayList> } // Interface IBaseMapper