mybatis当实体类中的属性名和表中的字段名不一样 ,怎么办 ?

1 个回答

  • 周武王
    满心期待必有所失,人无贪念便有馈赠。
    在 MyBatis 中,如果实体类的属性名和数据库表的字段名不一致,可以通过以下两种方式进行处理: #### 方法 1:通过 SQL 语句定义字段别名 在查询的 SQL 语句中使用字段别名,将数据库表中的字段名映射为实体类中的属性名。 **示例**: ```xml <select id="selectOrder" parameterType="int" resultType="me.gacl.domain.Order"> SELECT order_id AS id, order_no AS orderNo, order_price AS price FROM orders WHERE order_id = #{id}; </select> ``` 在这个示例中,数据库表 `orders` 的字段 `order_id`、`order_no` 和 `order_price` 分别映射为实体类 `Order` 中的属性 `id`、`orderNo` 和 `price`。 #### 方法 2:使用 resultMap 映射字段名和实体类属性名的一一对应关系 通过 `resultMap` 来定义数据库表字段名和实体类属性名之间的映射关系。 **示例**: ```xml <resultMap id="orderResultMap" type="me.gacl.domain.Order"> <id property="id" column="order_id"/> <result property="orderNo" column="order_no"/> <result property="price" column="order_price"/> </resultMap> <select id="selectOrder" parameterType="int" resultMap="orderResultMap"> SELECT order_id, order_no, order_price FROM orders WHERE order_id = #{id}; </select> ``` 在这个示例中,使用 `resultMap` 定义了 `order_id` 对应 `Order` 类的 `id` 属性,`order_no` 对应 `orderNo` 属性,`order_price` 对应 `price` 属性。
    编辑于 2024-11-07 06:25 •IP属地 美国
    举报
    评论
    收藏