结论:resultType与resultMap都可以用于接收mybatisplus中select的查询结果,resultType适合接收简单的查询结果集,而resultMap则可以胜任接收复杂的查询结果集
resultType
resultType属性可以指定一个JavaBean,这个JavaBean的属性名与查询结果的列名相对应,MyBatis可以自动为每个属性注入对应的值,从而构建一个完整的JavaBean对象作为查询结果。例如:
<selectid="selectUserById"resultType="com.example.User">SELECT * FROM user WHERE id = #{id}</select>这里的resultType指定了查询结果是一个com.example.User对象,而每个User对象的属性会依次与查询结果的列名相对应。
resultMap
resultMap则更加灵活,能够实现复杂的结果映射。在resultMap中,我们可以通过定义标签来明确指定如何将查询结果的列映射到JavaBean的属性上,可以进行任意的转换和计算操作。例如:
<resultMapid="userMap"type="com.example.User"><resultproperty="id"column="user_id"/><resultproperty="name"column="user_name"/><resultproperty="age"column="user_age"/><resultproperty="address"column="user_address"/><resultproperty="phone"column="user_phone"jdbcType="VARCHAR"javaType="com.example.PhoneNumber"select="selectPhoneNumberById"/></resultMap><selectid="selectUser"resultMap="userMap">SELECT user_id, user_name, user_age, user_address, user_phone FROM users WHERE id = #{id}</select>这里的resultMap中,除了基本的属性映射之外,Phone字段还使用了自定义的类型转换方式,并调用了selectPhoneNumberById方法进行属性的填充。
综上所述,resultType和resultMap都是用于MyBatis结果集类型映射的属性。其中,resultType适用于简单的结果映射,而resultMap则更加灵活,可以实现任何复杂的结果映射。