在 Java + MyBatis 中,映射实体类(Entity / POJO)主要有 几种常见方式,下面从最常用到进阶给你讲清楚。
public class User {
private Integer id;
private String username;
private String password;
// getter / setter
}
<select id="getUserById" resultType="com.example.entity.User">
SELECT id, username, password
FROM user
WHERE id = #{id}
</select>
✅ 要求
user_id
user_name
public class User {
private Integer userId;
private String userName;
}
<resultMap id="UserMap" type="com.example.entity.User">
<id column="user_id" property="userId"/>
<result column="user_name" property="userName"/>
</resultMap>
<select id="getUserById" resultMap="UserMap">
SELECT user_id, user_name
FROM user
WHERE user_id = #{id}
</select>
✅ 适合
# application.yml
mybatis:
configuration:
map-underscore-to-camel-case: true
或
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
user_id -> userId
create_time -> createTime
✅ 不需要写 resultMap
@Select("SELECT id, username FROM user WHERE id = #{id}")
@Results({
@Result(column = "user_id", property = "userId")
})
User getUserById(Integer id);
✅ 适合 简单项目 / 快速开发
@TableName("user")
public class User {
@TableId
private Integer id;
private String username;
}
User user = userMapper.selectById(1);
✅ 几乎零配置
| 问题 | 解决方式 |
|---|---|
| 查出来属性为 null | 字段名不一致 / 没开驼峰 |
| 主键没映射 | 用 <id> |
| List 映射失败 | resultType 写实体类 |
| 一对一 / 一对多 | <association> / <collection> |
如果你愿意,可以告诉我:
我可以帮你直接写完整示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。