MyBatis中常见标签的使用

1. <collection>标签

        例如有两张表:user表

role表

MyBatis中常见标签的使用_第1张图片 

那么我们再写实体类User 、Role 的对应关系是,一个用户有多个角色,因此,在 User 的实体中加入一个 Role 的属性。

private List roles //1对多关系

然而在Mybatis的XML文件中我们要使用 标签来映射这一关系

  
  
          
          
          
          
              
              
          
      

2. <association>标签

        既然有1对多标签就有1对1标签,标签就是1对1标签, 嵌套查询是先查一个表,根据这个表里面的结果的外键id,去再另外一个表里面查询数据,也是通过association配置,但另外一个表的查询通过select属性配置,如下:

  
  
  
   
  
   
 

3. 使用resultType、ResultMap处理返回结果

resultType: 指定返回值结果的完全限定名,处理多表查询的结果。多表查询需要定义vo封装查询的结果。只能用在单表查询或者定义vo的情况,如果是定义vo不能将关联的数据封装为需要获得某个类的对象

resultMap:不需要定义vo类,将关联数据对应的类,作为另外一个类的属性。

      第一步:定义resultMap

      第二步:引用resultMap

      使用resultMap:用来多表关联的复杂查询中,通过需要将关联查询的数据封装为某个实体类对象,如果有特殊业务需要或者说明需要将管理数据封装为实体类的对象,使用resultMap

4.

if标签是与的关系,而 choose 是或的关系。choose标签是按顺序判断其内部when标签中的test条件出否成立,如果有一个成立,则 choose 结束。当 choose 中所有 when 的条件都不满则时,则执行 otherwise 中的sql。类似我们Java中的 switch 语句,choose 为 switch,when 为 case,otherwise 为 default。

        例子:

5.

        标签相当于一段SQL语句片段,引用它的时候使用标签来引用


        and sex=#{sex}
    
    
    select * from user
    
    
    

6.

        一般使用它来做语句的拼接,在向sql传递 集合或者数组的时候 mybatis使用来解析

例如:SQL语句SELECT * FROM user WHERE id=1 OR id=10 OR id=16 

mybatis:

     
        
    每次遍历需要拼接的串
                id= #{user_id}
        
 

7.

         这两个标签一般用于更新语句中,表限定条件

     
    UPDATE student      
        
             
            student_name = #{studentName},      
             
             
            student_sex = #{studentSex},      
             
             
            student_birthday = #{studentBirthday},      
               
         
    WHERE student_id = #{studentID};      
  

8.

        标签作用一般是用于去除多余关键字

     
  

你可能感兴趣的:(开源框架,java)