在 Java + MyBatis 中,“映射结果”通常指把 SQL 查询结果 映射成 Java 对象(POJO / DTO / Map 等)。下面从常见方式、示例、注意点系统讲一下。
前提:数据库列名与 Java 属性名 一致(或符合命名规则)
public class User {
private Long id;
private String username;
private Integer age;
// getter / setter
}
<select id="selectUser" resultType="com.example.User">
SELECT id, username, age FROM user
</select>
✅ 字段名 username → 属性 username
✅ 下划线自动转驼峰(需开启配置)
mybatis:
configuration:
map-underscore-to-camel-case: true
<select id="getUserMap" resultType="map">
SELECT * FROM user
</select>
返回:
Map<String, Object>
⚠️ 适合临时查询,不推荐业务核心逻辑
用于:
<resultMap id="userMap" type="com.example.User">
<id column="user_id" property="id"/>
<result column="user_name" property="username"/>
<result column="user_age" property="age"/>
</resultMap>
<select id="selectUser" resultMap="userMap">
SELECT user_id, user_name, user_age FROM user
</select>
public class Order {
private Long id;
private User user;
}
<resultMap id="orderMap" type="Order">
<id column="order_id" property="id"/>
<association property="user" javaType="User">
<id column="user_id" property="id"/>
<result column="user_name" property="username"/>
</association>
</resultMap>
public class User {
private Long id;
private List<Order> orders;
}
<resultMap id="userOrderMap" type="User">
<id column="user_id" property="id"/>
<collection property="orders" ofType="Order">
<id column="order_id" property="id"/>
</collection>
</resultMap>
@Select("SELECT id, username FROM user")
@Results({
@Result(column = "user_name", property = "username")
})
List<User> listUsers();
✅ 适合小项目
❌ 复杂映射不如 XML 清晰
<select id="getUser" resultType="User">
Integer简单映射用 resultType,复杂映射用 resultMap,字段不一致必须 resultMap
如果你有:
可以直接贴出来,我可以帮你精确改 ✅
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。