MyBatis3.X复杂Sql查询的语句

MyBatis3.X复杂Sql查询

MyBatis3.X的resultMap

1.Mybatis的sql语句返回的结果有两种

  • resultType
  • 查询出的字段在相应的pojo中必须有和它相同的字段对应,或者基本数据类型
  • 适合简单查询
  • resultMap

需要自定义字段,或者多表查询,一对多等关系,比resultType更强大
适合复杂查询


	
	
	
	
	

ResultMap复杂对象一对一查询结果映射之association

association:映射到POJO的某个复杂类型属性,比如订单order对象里面包含user对象



  
    
    
    
    
    
    
    
    
    
      
      
      
      

    
  
  
  

代码

// resultmap association关联查询
VideoOrderMapper videoOrderMapper =sqlSession.getMapper(VideoOrderMapper.class);
List videoOrderList = videoOrderMapper.queryVideoOrderList();
System.out.println(videoOrderList.toString());

ResultMap复杂对象一对多查询结果映射之collection

collection: 一对多查询结果查询映射,比如user有多个订单

 
    
    
    
    
    
    
      
      
      
      
      
      
      
      
      
    
  
  

代码

// resultmap association关联查询
VideoOrderMapper videoOrderMapper =sqlSession.getMapper(VideoOrderMapper.class);
//resultmap collection测试
List userList = videoOrderMapper.queryUserOrder();
System.out.println(userList.toString());

Mybatis3.X ResultMap复杂对象查询总结

总结ResultMap的复杂对象查询

  • association映射的是一个pojo类,处理一对一的关联关系。
  • collection映射的一个集合列表,处理的是一对多的关联关系。
  • 模板
<!--column不做限制,可以为任意表的字段,而property须为type定义的pojo属性-->

	
	
	
  
	

<!--集合中的property 需要为oftype定义的pojo对象的属性-->

 	
	

你可能感兴趣的:(MyBatis3.X复杂Sql查询的语句)