MyBatis-结果映射association标签的使用

association标签的部分说明

  • 可参考的DTD规范
      
      
    
  • 可选标签元素说明
    • constructor
      • 有参形式构造类对象实例
      • 一般用于类对象没有无参构造器的情况
      • 一般很少使用
    • id
      标记主键
    • result
      标记非主键字段
    • association
      嵌套一对一的关联映射
    • collection
      嵌套一对多的关联映射
    • discriminant
      嵌套鉴别器
  • 可选属性说明
    • property
      POJO中的属性名称
    • column
      映射表中的字段名称
    • select
      指定引用mapper文件中的select标签语句
    • columnPrefix
      定义映射表字段名称的别名前缀
  • association表示的一对一关系映射

使用sql关联查询实现一对一映射

  • resultMap标签
      <resultMap type="siye.ibatis.entity.TblUser1" id="tblUserMap">  
      	<id property="id" column="id" />                            
      	<result property="name" column="name" />                    
      	<result property="age" column="age" />                      
      	<result property="gender" column="gender" />                
      	                     
      	<association property="tblRole"                             
      		javaType="siye.ibatis.entity.TblRole" columnPrefix="r_">
      		<id property="id" column="id" />                        
      		<result property="name" column="name" />                
      	association>                                              
      resultMap>                                                    
    
  • select标签
      <select id="getTblUserByPK" resultMap="tblUserMap" >       
      	select                                                 
      	u.id,u.name,u.age,u.gender,r.id r_id,r.name r_name from
      	tbl_user u left join                                   
      	tbl_role r on u.role_id = r.id                         
      	where u.id = #{id}                                     
      select>                                                  
    
  • java调用
      TblUser1 obj = dao.getTblUserByPK(1);
      log.info(obj);
    

组合sql语句实现一对一映射

  • resultMap标签
      <resultMap type="siye.ibatis.entity.TblUser1"        
      	id="tblUserMap1">                                
      	<id property="id" column="id" />                 
      	<result property="name" column="name" />         
      	<result property="age" column="age" />           
      	<result property="gender" column="gender" />     
      	             
      	    
      	<association property="tblRole" column="role_id" 
      		select="getTblRoleByPK" />                   
      resultMap>                                         
    
  • select标签
      <select id="getTblRoleByPK"                          
      	resultType="siye.ibatis.entity.TblRole">         
      	select id,name from tbl_role where id = #{id}    
      select>                                            
                                                           
                                                           
      <select id="getTblUserByPK1" resultMap="tblUserMap1">
      	select                                           
      	id,name,age,gender,role_id from tbl_user         
      	where                                            
      	id = #{id}                                       
      select>                                            
    
  • java调用
      TblUser1 obj1 = dao.getTblUserByPK1(1);
      log.info(obj1);
    

你可能感兴趣的:(归档弃用)