Mapper映射文件配置

一、概述

在mapper文件中,已mapper作为根节点,其下面可以配置的元素节点有:select,insert,update,delete,cache,cache-ref,resultMap,sql

二、详细配置解析

1. insert,update,delete的配置及使用

   
 




    
    
    
    
    
    
    
    
      
      id="insertUser"
      
      
      
      parameterType="com.demo.User"
      
      
      
      flushCache="true"
      
      
      
      statementType="PREPARED"
      
      
      
      keyProperty=""
      
      
      
      keyColumn=""
      
      
      
      useGeneratedKeys="false"
      
      
      timeout="20">

    

    

在oracle数据库中不支持id自增长,就需要selectKey的配置:

 
   
          
        
              select seq_user_id.nextval as id from dual
        
      
        insert into user(id, name, password, age, deleteFlag) 
        values(#{id}, #{name}, #{password}, #{age}, #{deleteFlag})
   

在mysql中,如果需要数据插入后返回插入的id,也可以使用selectKey元素:


   
         
        
        
        
               SELECT LAST_INSERT_ID() as id
        
          
        insert into user(id, name, password, age, deleteFlag) 
        values(#{id}, #{name}, #{password}, #{age}, #{deleteFlag})
   

selectKey提供了一个简单的行为,在数据库中处理自动生成的组件,而不需要在Java代码中进行业务处理。在上面的例子中,selectKey元素将会首先运行,userid会被设置,然后插入语句会被调用。另外selectKey节点生成的KeyGenerator优先级高举statement节点的userGeneratedKeys属性生成的KeyGenerator对象,也就是说配置了selectKey子节点就不需要再配置userGeneratedKeys属性了。


        keyProperty="id"
        
        resultType="int"
        
        order="BEFORE"
        
        statementType="PREPARED">

2. select、resultMap的配置及使用
select是最常用的,也是最复杂的,mybatis通过resultMao能很好地进行高级映射。