跳到主要内容

@Query

用来标记在接口方法上,执行一个可以返回结果集的查询语句。

信息

value 支持字符串数组,元素以空格连接,方便多行书写。

示例:查询用户列表
@SimpleMapper
public interface UserMapper {
@Query("select * from users where id > #{id}")
List<User> listUsers(@Param("id") long searchId);
}

分页查询

方法参数中增加 Page 参数即可分页:

// 返回 List
@Query("select * from users where id > #{id}")
List<User> listUsers(@Param("id") long searchId, Page page);

// 返回 PageResult(含总记录数和总页数)
@Query("select * from users where id > #{id}")
PageResult<User> pageUsers(@Param("id") long searchId, Page page);

属性清单

属性名描述
value必选 将要被执行的查询语句。
statementType可选 JDBC 查询方式。默认 Prepared
- Statementjava.sql.Statement
- Preparedjava.sql.PreparedStatement
- Callablejava.sql.CallableStatement
timeout可选 查询超时秒数,调用 Statement.setQueryTimeout(int)。默认 -1
fetchSize可选 每次获取行数,调用 Statement.setFetchSize(int)。默认 256
resultSetType可选 结果集类型:FORWARD_ONLYSCROLL_INSENSITIVESCROLL_SENSITIVEDEFAULT(默认)
resultSetExtractor可选 配置 ResultSetExtractor 处理结果集(bindOut 时失效)
resultRowCallback可选 配置 RowCallbackHandler 处理结果集(bindOut 时失效)
resultRowMapper可选 配置 RowMapper 处理结果集(bindOut 时失效)
resultTypeHandler可选 配置 TypeHandler 处理结果集(bindOut 时失效)
bindOut可选 绑定输出参数,配合存储过程或多结果集。此时返回值须为 Map<String,Object>