MyBatis映射文件和核心文件的标签

动态代理

代理模式的组成

作用:对真实角色功能的增强,真实角色和代理角色都是抽象角色的子类

  1. 抽象角色:定义了要实现的功能,通常使用接口。这个案例中就是UserMapper接口
  2. 真实角色:可以不存在的,这里没有
  3. 代理角色:也实现了接口中方法,使用动态代理来实现UserMapper接口,并且重写其中方法: findAllUsers()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ncqtCgcE-1592644423324)(F:/%E5%B0%B1%E4%B8%9A%E5%8A%9E%E4%BD%9C%E4%B8%9AjavaWeb/3_7%E5%85%A8%E5%9B%BD%E6%8E%88%E8%AF%BE/day25(MyBatis%E7%AC%AC2%E5%A4%A9)]/day25(MyBatis%E7%AC%AC2%E5%A4%A9)/%E8%AE%B2%E4%B9%89/assets/1554285221866.png)

动态代理的好处

  1. 接口的代理对象由程序在执行的过程中动态生成,不用我们自己去写一个类实现接口中所有的方法
  2. 可以动态生成任意接口的对象

Proxy类中的方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CftWzFgE-1592644423327)(F:/%E5%B0%B1%E4%B8%9A%E5%8A%9E%E4%BD%9C%E4%B8%9AjavaWeb/3_7%E5%85%A8%E5%9B%BD%E6%8E%88%E8%AF%BE/day25(MyBatis%E7%AC%AC2%E5%A4%A9)]/day25(MyBatis%E7%AC%AC2%E5%A4%A9)/%E8%AE%B2%E4%B9%89/assets/1557839380147-1589417530199.png)

InvocationHandler接口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HCmpLefq-1592644423330)(F:/%E5%B0%B1%E4%B8%9A%E5%8A%9E%E4%BD%9C%E4%B8%9AjavaWeb/3_7%E5%85%A8%E5%9B%BD%E6%8E%88%E8%AF%BE/day25(MyBatis%E7%AC%AC2%E5%A4%A9)]/day25(MyBatis%E7%AC%AC2%E5%A4%A9)/%E8%AE%B2%E4%B9%89/assets/1557839397638.png)

核心配置文件:properties

作用:加载外部的属性文件,扩展名为.properties放在src目录下

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/day25
jdbc.username=root
jdbc.password=root

核心配置文件:typeAliases

typeAliases作用

作用:给数据类型定义别名

在实体类映射文件中,编写SQL语句属性
resultType="com.itheima.entity.User" 能不能简化它的写法呢?可以的
可以在核心配置文件中使用typeAliaes来给实体类定义别名

在mybatis中已经定义很多别名,我们可以直接使用

内置别名

别名是小写的,以下类型可以直接使用

parameterType="java.lang.Integer" 换成 parameterType="int"
别名真实类型
_bytebyte
_longlong
_shortshort
_intint
_integerint
_doubledouble
_floatfloat
_booleanboolean
stringString
byteByte
longLong
shortShort
intInteger
integerInteger
doubleDouble
floatFloat
booleanBoolean
dateDate
decimalBigDecimal
bigdecimalBigDecimal
objectObject
mapMap
hashmapHashMap
listList
arraylistArrayList
collectionCollection
iteratorIterator

说明:

  • 内置别名可以直接使用
  • 别名不区分大小写

核心配置文件:mappers

方式一:加载单个映射文件mapper

方式二:包扫描加载映射文件package

<!-- 加载其它映射文件 -->
<mappers>
    <!--
    子元素:mapper
        属性:
        resource:加载类路径下指定的配置文件,注:分隔符是/,而不是点号
        url: 读取指定路径下配置文件,或者网络的配置文件
        <mapper url="file:///d:/UserMapper.xml"/>
        class: 指定接口的完全限定名,用于注解的配置,不需要XML文件。
        <mapper class="com.itheima.dao.UserMapper"/>

    子元素:package
        1. 指定扫描哪个包下所有的DAO接口,如果使用这种写法,接口名与配置文件名字要相同。
        如:接口名UserMapper.java 配置文件名:UserMapper.xml
        2. 接口与配置文件必须放在同一个包下
    -->
    
    <package name="com.itheima.dao"/>

小结

配置标签名称功能属性或子元素
properties加载外部的配置文件属性 resource:加载类路径下配置文件
属性 url:加载网络上或其它地址配置文件
子元素:property:在文档内部定义键和值,
同名的键会被外面的文件覆盖
typeAliases给实体类定义别名子元素 typeAliase: 每一行定义一个类别名
子元素 package: 对整个包和子包定义别名,别名就是类名
定义键和值,
同名的键会被外面的文件覆盖
typeAliases给实体类定义别名子元素 typeAliase: 每一行定义一个类别名
子元素 package: 对整个包和子包定义别名,别名就是类名
mappers加载实体类映射文件路径子元素 mapper: 每一行加载一个外面的映射文件
子元素 package: 对整个包扫描,加载所有的映射文件
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值