MyBatis(四) 映射器配置(自动映射、resultMap手动映射、参数传递)

引入映射器

 	
  	
  	
  	
  	
	
	
	

映射器的主要元素

MyBatis(四) 映射器配置(自动映射、resultMap手动映射、参数传递)_第1张图片

select元素配置

* id属性,和namespace构成唯一标识,为定义接口的方法名称

* parameterType,入参的类型,可以是全路径类名,也可以是别名,必须是上下文定义的

* parameterMap, 废弃

* resultType, 可以是全路径名,也可以是别名,结果集将通过javaBean映射,不能和resultMap同时使用

* resultMap, 定义表字段和pojo的字段的映射规则

另外几个不常用的元素:

* flushCache,作用是调用sql后,是否要求MyBatis清空之前的查询的本地缓存和二级缓存,默认false

* useCache,启动二级缓存,默认为true

查询中的自动映射

也就是没有配置resultMap的映射规则,直接将查询的字段值映射到对应的pojo的字段上,

要求数据库字段和pojo的字段名一致,这种情况下,一般是要给查询的字段起和pojo字段一致的别名

自动映射的设置


	
	

resultMap指定映射方式

在映射过程中,可能需要指定typeHandler进行类型转换,自动映射无法完成, 此时借助resutlMap

* 将上面自动映射的SQL片段,修改

1. 无需指定列的别名,在resultMap中设置列的映射规则

2. 去除resultType,指定resultMap,两个属性不同共存


  	
  	
  	
  	
  

type: 映射的javaBean类型

id主键列,result一般列

   property: 表列名映射的javaBean 字段

   column: 表列名

参数传递的三种方式

指定parameterType的三种类型

1. map方式

public Student queryStudentByNameAndSex(Map map);
map的key需要和sql里面的参数一致 map.put("sex",sex)  map.put("name",name);

2. 注解方式

public Student queryStudentByNameAndSex(@Param("name")String stuName,@Param("sex")String sex);

3. javaBean的方式

要求javaBean的字段名和SQL片段中的参数名称一致

public void insertStudent(Student student);

   insert into student_info (stu_age,stu_sex,stu_name) values 
   (#{stuAge},#{stuSex},#{stuName})
  


你可能感兴趣的:(MyBatis)