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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 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日志并进行多维度分析。
相关文章
|
3月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
933 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
4月前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
467 3
|
5月前
|
SQL XML Java
mybatis-源码深入分析(一)
mybatis-源码深入分析(一)
|
29天前
|
SQL Java 数据库连接
【潜意识Java】深入理解MyBatis的Mapper层,以及让数据访问更高效的详细分析
深入理解MyBatis的Mapper层,以及让数据访问更高效的详细分析
60 1
|
1月前
|
开发框架 运维 监控
Spring Boot中的日志框架选择
在Spring Boot开发中,日志管理至关重要。常见的日志框架有Logback、Log4j2、Java Util Logging和Slf4j。选择合适的日志框架需考虑性能、灵活性、社区支持及集成配置。本文以Logback为例,演示了如何记录不同级别的日志消息,并强调合理配置日志框架对提升系统可靠性和开发效率的重要性。
|
4月前
|
Java 程序员 API
Android|集成 slf4j + logback 作为日志框架
做个简单改造,统一 Android APP 和 Java 后端项目打印日志的体验。
196 1
|
5月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
71 2
|
5月前
|
Java
日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查
日常项目运行日志,异常栈打印是不带traceId,导致排查问题查找异常栈很麻烦。
|
4月前
|
SQL XML 监控
SpringBoot框架日志详解
本文详细介绍了日志系统的重要性及其在不同环境下的配置方法。日志用于记录系统运行时的问题,确保服务的可靠性。文章解释了各种日志级别(如 info、warn、error 等)的作用,并介绍了常用的日志框架如 SLF4J 和 Logback。此外,还说明了如何在 SpringBoot 中配置日志输出路径及日志级别,包括控制台输出与文件输出的具体设置方法。通过这些配置,开发者能够更好地管理和调试应用程序。
|
5月前
|
运维 NoSQL Java
SpringBoot接入轻量级分布式日志框架GrayLog技术分享
在当今的软件开发环境中,日志管理扮演着至关重要的角色,尤其是在微服务架构下,分布式日志的统一收集、分析和展示成为了开发者和运维人员必须面对的问题。GrayLog作为一个轻量级的分布式日志框架,以其简洁、高效和易部署的特性,逐渐受到广大开发者的青睐。本文将详细介绍如何在SpringBoot项目中接入GrayLog,以实现日志的集中管理和分析。
389 1