2.5 结果映射
Bean 映射
自动映射规则
| 数据库字段 | Bean 属性 | 说明 |
|---|---|---|
user_name | userName | 下划线转驼峰 |
USER_NAME | userName | 大写下划线转驼峰 |
username | username | 直接匹配 |
定义实体类
@Data
@TableName("sys_user") // 可选,默认驼峰转下划线
public class User {
private Long id; // 默认主键
private String name;
private Integer age;
private Integer isDeleted; // 存在即启用逻辑删除
private Date createTime;
}
注解说明
| 注解 | 作用 | 示例 |
|---|---|---|
@TableName | 指定表名 | @TableName("t_user") |
@TableField | 指定字段名 | @TableField("email_addr") |
@TableId | 指定主键 | @TableId |
ResultMap(Map 结果)
查询结果也可以不映射到 Bean,直接使用 ResultMap:
ResultMap result = DB.Table.select("user").eq("id", 1).queryOne();
// 基础取值
result.getStr("name");
result.getInt("age", 0);
// 深度取值(JSON 嵌套字段)
result.getStr("profile.address.city", "未知");
result.getList("orders", Order.class);
// 基础类型转换
result.getLong("id");
result.getDouble("score");
result.getDate("create_time");
返回值速查
| 方法 | 返回 | 说明 |
|---|---|---|
queryBean() | T / null | 单条 Bean |
queryOne() | ResultMap / null | 单条 Map |
queryBeanList() | List<T> | Bean 列表 |
queryList() | List<ResultMap> | Map 列表 |
count() | long | 数量 |
queryBeanPage() | Page<T> | 分页 Bean |
queryPage() | Page<ResultMap> | 分页 Map |
queryOne(Class) | 指定类型 | 指定类型单条 |
queryList(Class) | List<T> | 指定类型列表 |
queryStr() | String | 单个字符串 |
queryInt() | Integer | 单个整数 |
queryLong() | Long | 单个长整型 |