mybatis的select属性返回结果类型如何设置

avatar
作者
猴君
阅读量:0

在 MyBatis 中,<select> 标签的 resultType 属性用于设置查询结果的类型。这可以是一个简单的 Java 类名,也可以是一个完全限定的类名。以下是一些示例:

  1. 设置简单类名:
<select id="findUserById" resultType="com.example.User">     SELECT * FROM users WHERE id = #{id} </select> 

在这个例子中,查询结果将被映射到 com.example.User 类。

  1. 设置完全限定的类名:
<select id="findUserById" resultType="com.example.mapper.UserDTO">     SELECT u.id, u.username, u.email     FROM users u     WHERE u.id = #{id} </select> 

在这个例子中,查询结果将被映射到 com.example.mapper.UserDTO 类。注意,在这种情况下,我们可能需要为 DTO 类提供一些额外的构造函数或字段映射,以便正确地将查询结果设置到 DTO 类的实例中。

  1. 如果查询结果包含嵌套对象,可以使用别名映射:
<resultMap id="userResultMap" type="com.example.User">     <id property="id" column="id"/>     <result property="username" column="username"/>     <result property="email" column="email"/>     <association property="address" javaType="com.example.Address">         <id property="id" column="address_id"/>         <result property="street" column="street"/>         <result property="city" column="city"/>     </association> </resultMap>  <select id="findUserById" resultMap="userResultMap">     SELECT u.id, u.username, u.email, a.id as address_id, a.street, a.city     FROM users u     LEFT JOIN addresses a ON u.address_id = a.id     WHERE u.id = #{id} </select> 

在这个例子中,我们定义了一个名为 userResultMap<resultMap>,它将查询结果映射到 com.example.User 类。我们还定义了一个嵌套的 <association> 元素,用于将查询结果中的 address 字段映射到 com.example.Address 类。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!