1.SQL映射文件
QL映射是My8ats框架最具特色的部分,功能强大且使用简单,在MyBatis框架的主要思想是将SQL语句从程序代码中分离出来,对JDBC访问数据库的代码进行封装,从程序中消除了所有SQL参数设置及处理结果集的JDBC代码,从而大幅减少数据访问层的编码量。并且,SQL语句与代码解耦,可以最大限度地实现对SQL语句的灵活管理,方便SQL调优以保证性能。
1.SQL映射文件中顶级元素如下:
mapper:sQL映射文件的根元素,只有一个属性namespace,用于区分不同的 mapper,必须全局唯一。
cache:为给定命名空间配置缓存。
cache-ref:引用其他命名空间中的缓存配置。
resultMap:用来描述查询结果集中的字段和Java 实体类属性的对应关系。
sql:定义可重用的 SQL语句块,可以在其他语句映射中引用,提高编写和维护 SOL 语句的效率。
insert:映射insert 语句。
update:映射 update 语句
delete:映射 delete 语句。
select:映射select 语句。
2.实现单一条件查询
1.在SysUserMapper接口添加查询方法:
2.在SysUserMapper.xml添加SQL语句映射:
3.在测试类中添加测试方法:
3.实现多条件查询
1.多条件查询,MyBatis框架提供多种方法实现,如下所知的三种:
1.将查询条件封装成Java对象作为入参,如下:
在SysUserMapper接口中添加查询方法,使用SysUser类作为参数,使用realName和roleId封俩个查询条件
关键代码:
在SysUserMapper.xml添加SQL映射
关键代码:
测试SysUser类型提供条件查询
关键代码:
2.将查询条件封装成Map对象作为入参
在SysUserMapper接口中添加查询方法,使用Map对象作为参数
关键代码:
使用Map对象作为参数,绑定key为rName和rId的键值对(key-value)获取查询条件
关键代码:
测试Map类型提供的查询条件,俩个条件的key分别使用rName和rId
关键代码:
3.使用@Param注解实现多参数入参
在SysUserMapper接口中添加查询方法,直接传入多个参数,并使用@Param注解为参数
关键代码:
添加SQL映射,使用@Param注解指定的名称绑定查询条件
关键代码:
测试直接传入多个查询条件
关键代码:
2.MyBatis框架的结果映射
1.使用resultMap元素自定义结果映射
在SysUserMapper接口添加查询用户的方法
使用resultMap元素映射和使用resultMap元素定义的规则封装查询结果
resultMap元素以下属性:
1.id:映射规则集的唯一标识,可以被 select元素的resultMap 属性引用。
2.type:映射的结果类型,这里指定封装成 SysUser 实例。
resultMap 元素包含以下子元素。
1.id:指定和数据表主键字段对应的标识属性。设置此项可以提升 MyBatis 框架的性能,特别是应用缓存和嵌套结果映射的时候,
2.result:指定结果集字段和实体类属性的映射关系。
2.嵌套结果映射
在resultMap中使用association元素实现嵌套映射
2.1.在SysUserMapper接口添加根据角色ID查询用户的方法
2.2.使用resultMap元素定义结果映射:
2.3.association元素的主要属性
1.property:实体类中用来映射查询结果子集的属性。
2.javaType:property 指定的属性的数据类型,可以使用 Java 完全限定类名或别名。如果property 指定的属性是一个 JavaBean,则 MyBatis 框架通常能够自行检测出其类型:如果 property 指定的是一个 HashMap,则应该通过 javaType 属性明确指定其数据类型,以确保所需行为。
association 元素包含如下子元素
1.id
2.result
1.collection元素
在SysUserMapper接口添加地址列表属性
在SysUserMapper接口中添加根据用户ID获取用户信息以及地址列表的方法
collection 元素有如下常用属性
1.property:实体类中用来映射查询结果子集的集合属性。
2.ofType:property 指定的集合属性中的元素的数据类型,可以使用ava完全限定类名或别名。
3.MyBatis框架的增、删、改操作
在SysUserMapper.xml添加SQL语句映射的增、删、改操作