【SSM框架】Mybatis详解06 对象分析、注册别名、设置日志输出

  • 🧛‍♂️个人主页:杯咖啡
  • 💡进步是今天的活动,明天的保证!
  • ✨目前正在学习:SSM框架,算法刷题
  • 👉本文收录专栏:SSM框架解析
  • 🙌牛客网,刷算法过面试的神级网站,用牛客你也牛。 👉免费注册和我一起学习刷题👈
  • 🐳希望大家多多支持🥰一起进步呀!
  • 😎The man who fears losing has already lost.
    怕输的人已经输了。 - 《权力的游戏》

✨前言

和我一起复习下去你可以获得一个比较完美框架demo,并且深刻体会框架。
坚持到最后的源码解析你会收获更多哦,加油坚持!!!

上一篇文章我们从大的方面添加了五个功能,详情看上一篇哦!!!
那么今天就继续往下复习,今天会复习到

  • MyBatis对象分析
  • 为实体类注册别名
  • 设置日志输出

剖析得有不到位不全面的地方欢迎下伙伴们评论区不错改正。
对于我自己来说是一次系统的复习,我把博客当成复习笔记的同时也希望可以给感兴趣的小伙伴们一些动力和收获。



Mybatis对象分析

1)Resources类

Resouces类就是解析SqlMapConfig.xml文件,创建出相应的对象
InputStream in = Resources.getResourceAsStream(“SqlMapConfig.xml”);
我们要想解析配置文件,首先就要拿到配置文件,在对其解析。
Resouces类就是资源类,通过他的getResouceStream()方法可以获取配置文件,并且可以很>方便的返回流对象。

在这里插入图片描述

2)SqlSessionFactory接口

使用ctrl+h快捷键查看本接口的子接口及实现类
DefaultSqlSessionFactory是实现类
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
我们通过本方法传入获取的配置的流,就可以通过工厂建造器创建对应的工厂了,
但是注意这个对象可是很占内存的,我们使用工厂建造出来SqlSession对象以后就要立马关闭哦,不然在高并发的场景下,你的服务器会冒烟滴!!!

在这里插入图片描述

3)SqlSession接口

DefaultSqlSession实现类
这个接口就是我们要使用的接口啦,当然他的实现类是DefaultSqlSession类。
这里使用了多态哦,接口指向实现类呢
那么这个对象就可以直接编译并且执行我们保存好的sql语句啦,也包括返回数据哦!!!

在这里插入图片描述

为实体类注册别名

不知大家有没有跟着我写一遍呢,写过的小伙伴会发现有个问题会很繁琐。直接上图

在这里插入图片描述
在这里插入图片描述

我们才做了几个功能,返回类型就写了那么多次一样的,是不是很繁琐呢??
那么我们就来简化它

单体注册

我们在SqlMapConfig.xml文件中添加

 <!--为实体类注册别名-->
    <typeAliases>
        <typeAlias type="com.longlong.pojo.Student" alias="Student"></typeAlias>
    </typeAliases>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

批量注册

我们在SqlMapConfig.xml文件中添加

在这里插入图片描述

这里需要注意的是,我们使用包名批量注册后,默认的返回类型一定要遵守 驼峰命名法,不然会找不到哦!!!!
在工作中实体类很多,本方法比较常用哦

这样一来,我们再写返回的实体类型就只写注册完的简写哦。

在这里插入图片描述

设置日志输出

我们可以来看一看不加日志输出的时候
我们只能看到结果,并看不到执行的什么代码

在这里插入图片描述

那么我们来加上日志输出看一下效果吧!
一定要看好是在哪个文件里添加的哦,小伙伴们想一想,这个日志是全局控制,自然要添加在…xml文件是吧!!!没猜出来的小伙伴看截图哦!!!!

<!--设置日志输出底层执行的代码-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

在这里插入图片描述

我们来看一下效果哦

在这里插入图片描述

增加了许多吧,语句和结果是不是很清晰呢。
这样以后就可以直接看出自己的sql语句是不是有问题啦,在后面的动态sql更加清晰明了哦,跟着我往后学习哦!!


✨总结

今天我们介绍了Mybatis3大对象、注册别名、设置日志输出,使得开发变得过程更加清晰,简单。
下一节我们将会讲解把动态代理引入框架,并且优化mapper.xml文件注册。
和我一起复习下去你可以获得一个比较完美框架demo,并且深刻体会框架,坚持到最后的源码解析你会收获更多哦,加油坚持!!!
本次源码放在代码仓库gitee,自取链接

原创不易,还希望各位大佬支持一下 \textcolor{blue}{原创不易,还希望各位大佬支持一下} 原创不易,还希望各位大佬支持一下

点赞,你的认可是我创作的动力! \textcolor{green}{点赞,你的认可是我创作的动力!} 点赞,你的认可是我创作的动力!

收藏,你的青睐是我努力的方向! \textcolor{green}{收藏,你的青睐是我努力的方向!} 收藏,你的青睐是我努力的方向!

评论,你的意见是我进步的财富! \textcolor{green}{评论,你的意见是我进步的财富!} 评论,你的意见是我进步的财富!

评论 73
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风铃听雨~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值