学习MyBatis的第二天

SQL映射文件

SQL映射MyBatis框架最具特色,功能强大且使用简单。

一.SQL映射文件的几个顶级元素及介绍

mapper: SQL 映射文件的根元素。只有一个属性namespace,用于区分不同的mapper,必须全局唯一。

cache:为给定命名空间配置缓存。

cache-ref:引用其他命名空间中的缓存配置。

resultMap:用来描述查询结果集中的字段和Java 实体类属性的对应关系。

sql:定义可重用的SQL语句块,可以仕具他佑可队TI用,旋高菊与和维护SQL语句的效率。

insert:映射insert 语句。

update:映射update语句。

delete:映射delete语句。

select:映射select 语句。

二.SQL映射文件的参数传递

直接传递:使用@Param注解为参数命名

使用JavaBean:使用#{属性名}绑定属性

使用Map:使用#{key}绑定映射规则

三.MyBatis框架的结果映射

1.使用resultMap元素自定义结果映射

select元素通过resultMap 属性引用resultMap元素定义的映射规则。

resultMap元素包含以下属性。

id:映射规则集的唯一标识,可以被select元素的resultMap属性引用。

type:映射的结果类型,这里指定封装成SysUser 实例。

resultMap元素包含以下子元素。

id:指定和数据表主键字段对应的标识属性。设置此项可以提升 MyBatis框架的性能.特别是应用缓存和嵌套结果映射的时候。

result:指定结果集字段和实体类属性的映射关系。

2.嵌套结果映射

1.association元素

association元素用来处理“has-one”类型的关系。

association元素主要属性

property:实体类中用来映射查询结果子集的属性。

javaType: pronertv指定的属性的数据米刑可N使田Iava完全限定类名或别名。如果 property指定的属性是一个JavaBean叫ll MvRatis框架涵尝能够白行检测出甘类型,如果property 指定的是一个HashMap,则应该通讨iavaTvne属性明确指定甘数据类型,以确保所需行为。

association元素包含如下子元素。

id。

result。

它们在association中的含义和用法与在resultMap元素中相同。

2.collection元素

collection元素和association元素作用非常类似,只不过表达的是“一对多”关系,即实体类内部嵌套的是一个集合类型的属性。

collection元素的常用属性

property:实体类中用来映射查询结果子集的集合属性。

ofType: property 指定的集合属性中的元素的数据类型,可以使用Java完全限定类名或别名。collection元素的子元素与association元素及resultMap元素的基本一致。

3.result与resultMap

本质上都是Map,不能同时使用

4.resultMap自动映射行为

resultMap自动映射的三种行为

NONE:禁用自动映射,仅为于工职射的偶性赋但。

PARTIAL:这是默认行为.对于没有嵌套映射的resultMap使用自动映射;而对于有嵌套映射的resultMap不使用自动映射,仅为手工映射的属性赋值。

FULL:全部使用自动映射,即使有嵌套映射的resultMap也会使用自动映射。

四.MyBatis缓存

一级缓存范围:SqlSession

二级缓存范围:SqlSessionFactory  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值