MyBatis结果集映射

悠悠 2022-06-05 11:05 350阅读 0赞

MyBatis结果集映射在什么情况下使用?**
当定义的实体类的属性名和数据库的列名不一致时,需要建立属性名和列名的映射关系,也就是mybatis的结果集映射。
使用xml配置文件操作

  1. <resultMap type="返回类型" id="xxxMap" autoMapping="true">
  2. <!--主键一般使用标签id,不论实体类属性和数据库列名是否一致,都应该定义-->
  3. <id column="ID" property="ID"/>
  4. <!--实体类的属性名和列名不一致时-->
  5. <result column="name123" property="name"/>
  6. <!--实现(一对多)(多对一)的主要配置 在执行当前sql语句是,根据该表中的共同拥有的列去查到另一张表的信息 在该映射条件执行时,必须要有一个对应的接口,用来查询别一张表的方法 -->
  7. <association property="属性值" column="相关联列名属性" select="接口类全路径.方法名"></association>
  8. </resultMap>
  9. <select id="接口中对应方法名" resultMap="xxxMap">
  10. SELECT * FROM GRADE
  11. </select>
  12. </mapper>

使用注解完成一对多及多对一

  1. public interface StudentMapper {
  2. /** *原理和上边一样,只不过是换种表式方式,更加简单,容易理解 *注意如果有多个联系,需要用 * @Results( * { * @Result(property="返回类型1",column="相关联的列名1",one=@one(select="接口1.方法名")), * @Result(property="返回类型2",column="相关联的列名2",many=@Many(select="接口2.方法名")) * } * ) * 注意:one=@one 是表式一对一 many=@Many 是表示一对多 */
  3. @Results(
  4. @Result(property="返回类型",column="关联的列名",many=@Many(select="接口.方法名"))
  5. )
  6. @Select("select * from student where sid=#{id}")
  7. public Student queryStudentBySid(Integer id);
  8. }

发表评论

表情:
评论列表 (有 0 条评论,350人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MyBatis结果映射

    MyBatis结果集映射在什么情况下使用?\\       当定义的实体类的属性名和数据库的列名不一致时,需要建立属性名和列名的映射关系,也就是mybatis的结果集映射。