public interface IEntityMapper<E extends IEntity> extends IMapper<E>, IHasMapping
| 限定符和类型 | 方法和说明 |
|---|---|
void |
batchCrud(BatchCrud crud)
批量执行增删改操作
传入多个操作时, 需要数据库支持
比如MySql需要在jdbc url链接中附加设置 &allowMultiQueries=true
|
void |
callProcedure(String procedure,
Object parameter)
调用存储过程
|
int |
count(IQuery query)
根据 query 条件,查询总记录数
|
int |
countNoLimit(IQuery query)
根据 query 条件(如果有pageOffset, 去掉pageOffset限制部分),查询总记录数
|
int |
delete(IQuery query)
根据wrapper删除记录
|
int |
insert(E entity)
插入一条记录, 主键字段为空
|
int |
insertBatch(Collection<E> entities)
批量插入数据,实例主键必须全部未赋值
|
int |
insertBatchWithPk(Collection<E> entities)
批量插入数据,实例主键必须全部已赋值
|
int |
insertSelect(String[] fields,
IQuery query)
insert into a_table(fields) select fields from b_table;
|
int |
insertWithPk(E entity)
插入一条记录, 主键字段不为空
|
List<E> |
internalListEntity(IQuery query)
根据 query 条件,查询全部记录
|
default List<E> |
listEntity(IQuery query)
根据 query 条件,查询全部记录
|
List<Map<String,Object>> |
listMaps(IQuery query)
根据 query 条件,查询全部记录
|
<O> List<O> |
listObjs(IQuery query)
根据 query 条件,查询全部记录
注意: 只返回第一个字段的值
|
int |
updateBy(IUpdate... updates)
根据update对象更新记录
传入多个Update时, 需要数据库支持
比如MySql需要在jdbc url链接中附加设置 &allowMultiQueries=true
|
mapping@InsertProvider(type=SqlProvider.class, method="insert") int insert(@Param(value="ew") E entity)
entity - 实例SqlProvider.insert(Map, ProviderContext),
StatementBuilder.selectKeyStatementOfInsert()@InsertProvider(type=SqlProvider.class, method="insertBatch") int insertBatch(@Param(value="list") Collection<E> entities)
entities - 实例列表SqlProvider.insertBatch(Map, ProviderContext),
StatementBuilder.selectKeyStatementOfBatchInsert()default List<E> listEntity(@Param(value="ew") IQuery query)
query - 实体对象封装操作类(可以为 null)@SelectProvider(type=SqlProvider.class, method="listEntity") List<E> internalListEntity(@Param(value="ew") IQuery query)
query - 实体对象封装操作类(可以为 null)SqlProvider.listEntity(Map, ProviderContext),
StatementBuilder.listEntityStatement(),
ConfigurationKit.ConfigurationKit(Configuration, KeyMap)@InsertProvider(type=SqlProvider.class, method="insertWithPk") int insertWithPk(@Param(value="ew") E entity)
entity - 实例SqlProvider.insertBatchWithPk(Map, ProviderContext)@InsertProvider(type=SqlProvider.class, method="insertBatchWithPk") int insertBatchWithPk(@Param(value="list") Collection<E> entities)
entities - 实例列表SqlProvider.insertBatchWithPk(Map, ProviderContext)@InsertProvider(type=SqlProvider.class, method="insertSelect") int insertSelect(@Param(value="fields") String[] fields, @Param(value="ew") IQuery query)
fields - 要插入的字段query - select数据SqlProvider.insertSelect(Map, ProviderContext)@UpdateProvider(type=SqlProvider.class, method="updateBy") int updateBy(@Param(value="ew") IUpdate... updates)
传入多个Update时, 需要数据库支持 比如MySql需要在jdbc url链接中附加设置 &allowMultiQueries=true
updates - 更新列表SqlProvider.updateBy(Map, ProviderContext)@SelectProvider(type=SqlProvider.class, method="listObjs") <O> List<O> listObjs(@Param(value="ew") IQuery query)
query - 实体对象封装操作类(可以为 null)SqlProvider.listObjs(Map, ProviderContext)@SelectProvider(type=SqlProvider.class, method="listMaps") @ResultType(value=java.util.Map.class) List<Map<String,Object>> listMaps(@Param(value="ew") IQuery query)
query - 实体对象封装操作类(可以为 null)SqlProvider.listMaps(Map, ProviderContext)@SelectProvider(type=SqlProvider.class, method="count") int count(@Param(value="ew") IQuery query)
query - 实体对象封装操作类 (允许key对应value值为 null)
if value=null then column IS NULL; other column = valueSqlProvider.count(Map, ProviderContext)@SelectProvider(type=SqlProvider.class, method="countNoLimit") int countNoLimit(@Param(value="ew") IQuery query)
query - 实体对象封装操作类(可以为 null)SqlProvider.countNoLimit(Map, ProviderContext)@DeleteProvider(type=SqlProvider.class, method="delete") int delete(@Param(value="ew") IQuery query)
query - 实体对象封装操作类(属性条件可以为null)SqlProvider.delete(Map, ProviderContext)@UpdateProvider(type=SqlProvider.class, method="batchCrud") void batchCrud(@Param(value="ew") BatchCrud crud)
传入多个操作时, 需要数据库支持 比如MySql需要在jdbc url链接中附加设置 &allowMultiQueries=true
crud - 增删改操作SqlProvider.batchCrud(Map, ProviderContext)@Options(statementType=CALLABLE)
@Select(value="{CALL ${procedure}}")
void callProcedure(@Param(value="procedure")
String procedure,
@Param(value="p")
Object parameter)
procedure - 存储过程及参数, 比如:
procedureName(#{p.input1, mode=IN, jdbcType=INTEGER}, #{p.output1, mode=OUT, jdbcType=INTEGER})parameter - 存储过程引用的入参和出参设置对象, 以前缀 "p." 引用属性Copyright © 2021. All rights reserved.