@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- Statement → java.sql.Statement- Prepared → java.sql.PreparedStatement- Callable → java.sql.CallableStatement |
| timeout | 可选 查询超时秒数,调用 Statement.setQueryTimeout(int)。默认 -1 |
| fetchSize | 可选 每次获取行数,调用 Statement.setFetchSize(int)。默认 256 |
| resultSetType | 可选 结果集类型:FORWARD_ONLY、SCROLL_INSENSITIVE、SCROLL_SENSITIVE、DEFAULT(默认) |
| resultSetExtractor | 可选 配置 ResultSetExtractor 处理结果集(bindOut 时失效) |
| resultRowCallback | 可选 配置 RowCallbackHandler 处理结果集(bindOut 时失效) |
| resultRowMapper | 可选 配置 RowMapper 处理结果集(bindOut 时失效) |
| resultTypeHandler | 可选 配置 TypeHandler 处理结果集(bindOut 时失效) |
| bindOut | 可选 绑定输出参数,配合存储过程或多结果集。此时返回值须为 Map<String,Object> |