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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 【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日志并进行多维度分析。
相关文章
|
1月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
294 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
2月前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
322 3
|
20天前
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
|
1月前
|
存储 SQL 监控
|
1月前
|
运维 监控 安全
|
1月前
|
监控 关系型数据库 MySQL
分析慢查询日志
【10月更文挑战第29天】分析慢查询日志
43 3
|
1月前
|
监控 关系型数据库 数据库
怎样分析慢查询日志?
【10月更文挑战第29天】怎样分析慢查询日志?
43 2
|
2月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1699 14
|
2月前
|
Java 程序员 API
Android|集成 slf4j + logback 作为日志框架
做个简单改造,统一 Android APP 和 Java 后端项目打印日志的体验。
136 1
|
2月前
|
存储 消息中间件 大数据
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
大数据-69 Kafka 高级特性 物理存储 实机查看分析 日志存储一篇详解
49 4