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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【SSM框架】Mybatis详解06 对象分析、注册别名、设置日志输出

✨前言


和我一起复习下去你可以获得一个比较完美框架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,自取链接


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
18天前
|
SQL Java 数据库连接
对Spring、SpringMVC、MyBatis框架的介绍与解释
Spring 框架提供了全面的基础设施支持,Spring MVC 专注于 Web 层的开发,而 MyBatis 则是一个高效的持久层框架。这三个框架结合使用,可以显著提升 Java 企业级应用的开发效率和质量。通过理解它们的核心特性和使用方法,开发者可以更好地构建和维护复杂的应用程序。
107 29
|
20天前
|
机器学习/深度学习 人工智能 运维
智能日志分析:用AI点亮运维的未来
智能日志分析:用AI点亮运维的未来
142 15
|
1月前
|
SQL 关系型数据库 MySQL
MySQL事务日志-Undo Log工作原理分析
事务的持久性是交由Redo Log来保证,原子性则是交由Undo Log来保证。如果事务中的SQL执行到一半出现错误,需要把前面已经执行过的SQL撤销以达到原子性的目的,这个过程也叫做"回滚",所以Undo Log也叫回滚日志。
MySQL事务日志-Undo Log工作原理分析
|
2月前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
58 7
|
2月前
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
|
2月前
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
203 3
|
3月前
|
SQL Java 数据库连接
持久层框架MyBatisPlus
持久层框架MyBatisPlus
75 1
持久层框架MyBatisPlus
|
3月前
|
存储 SQL 监控
|
3月前
|
运维 监控 安全
|
3月前
|
监控 关系型数据库 MySQL
分析慢查询日志
【10月更文挑战第29天】分析慢查询日志
84 3