mybatis学习日记(一)2-mybatis介绍

本文深入探讨了mybatis框架的原理与实现,包括其作为持久层框架的特点、核心组件的作用以及与hibernate的区别。重点阐述了mybatis在需求变化多的大型项目中的优势,如SqlMapConfig.xml配置文件、SqlSessionFactory工厂、SqlSession接口、Executor执行器及mappedstatement对象等关键概念。

1、mybatis是什么?

mybatis是一个持久层的框架,是apache下的顶级项目。
mybatis托管到goolecode下,再后来托管到github下(https://github.com/mybatis/mybatis-3/releases)。

mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句。

mybatis可以将向 preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象。(输出映射)

2、mybatis框架

SqlMapConfig.xml(是mybatis的全局配置文件,名称不固定)
配置了数据源、事务等mybatis运行环境
配置映射文件(配置sql语句)
mapper.xml(映射文件)、mapper.xml、mapper.xml…..
||
SqlSessionFactory(会话工厂),根据配置文件创建工厂
作用:创建SqlSession
||
SqlSession(会话),是一个接口,面向用户(程序员)的接口
作用:操作数据库(发出sql增、删、改、查)
||
Executor(执行器),是一个接口(基本执行器、缓存执行器)
作用:SqlSession内部通过执行器操作数据库
||
mapped statement(底层封装对象)
作用:对操作数据库存储封装,包括 sql语句,输入参数、输出结果类型(java简单类型、hashmap、pojo自定义)
||
msyql

3、与hibernate不同(hibernate适用于中小型的需求变化少的–sql语句自动生成,比如后台管理系统),mybaitis适用于需求变化多的,适用于大型项目,比如互联网项目

<think> 我们参考了多个关于关闭MyBatis/MyBatis-Plus SQL日志打印的引用,结合若依框架(RuoYi)的特点,给出以下步骤: 根据引用[3]和[5],我们可以通过在配置文件中设置MyBatis的日志实现为无日志实现(NoLoggingImpl)来关闭SQL日志。在Spring Boot项目中,这通常在application.yml或application.properties中配置。 若依前后端分离项目同样基于Spring Boot,因此我们可以采用以下方法: 方法(推荐):在application.yml中配置 在Spring Boot的配置文件中(般是src/main/resources/application.yml)添加以下配置: ```yaml mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl ``` 或者,如果你使用的是application.properties,则添加: ```properties mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.nologging.NoLoggingImpl ``` 方法二:如果你只想关闭MyBatis-Plus的日志,但保留MyBatis的日志(比如只关闭红色的MyBatis-Plus的banner等),可以尝试关闭MyBatis-Plus的启动banner(引用[2]中提到的问题可能包含banner): ```yaml mybatis-plus: global-config: banner: false # 关闭MyBatis-Plus启动时的banner ``` 但是,方法二并不能关闭SQL语句的日志。所以,如果你主要是想关闭SQL日志,那么方法更直接。 另外,引用[2]中提到,有时候配置可能失效。如果上述配置不生效,可以考虑检查是否有其他配置覆盖了该设置,或者尝试使用以下方式(但通常不需要): - 检查是否在logback-spring.xml或log4j2.xml等日志配置文件中单独配置了Mapper接口的日志级别。如果有,可以将其设置为OFF或ERROR级别。 例如,在logback-spring.xml中,如果你看到如下配置: ```xml <logger name="com.ruoyi.mapper" level="DEBUG"/> ``` 可以将其改为: ```xml <logger name="com.ruoyi.mapper" level="OFF"/> ``` 但注意,这种方法会关闭整个Mapper包的日志,包括错误日志。因此,建议优先使用方法。 总结:在若依项目中关闭SQL日志,推荐在application.yml中设置`mybatis-plus.configuration.log-impl`为`org.apache.ibatis.logging.nologging.NoLoggingImpl`。 如果问题仍未解决,请检查是否有多个数据源配置,确保每个MyBatis配置都正确设置了日志实现。 §§相关问题§§ 1. 如何只关闭MyBatis-Plus的SQL日志而保留其他日志? 2. 若依框架中如何配置多数据源并分别控制日志? 3. 如何动态开启或关闭MyBatis的SQL日志? </think>### 在若依前后端项目中关闭MyBatis SQL日志的方法 在若依(RuoYi)框架中关闭SQL日志,可通过修改配置文件实现。以下是具体步骤: #### 方法:修改配置文件(推荐) 1. 打开配置文件 `application.yml`(或`application.properties`) 2. 添加/修改以下配置: ```yaml mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl ``` 此配置会将MyBatis日志实现设为"无日志"模式[^5]。 #### 方法二:关闭MyBatis-Plus Banner(可选) 在配置文件中添加: ```yaml mybatis-plus: global-config: banner: false # 关闭启动时的红色Banner日志[^2] ``` #### 方法三:调整日志级别 在日志配置文件(如`logback-spring.xml`)中添加: ```xml <!-- 关闭MyBatis Mapper层DEBUG日志 --> <logger name="com.ruoyi.*.mapper" level="WARN"/> ``` 此方法可保留错误日志,仅屏蔽SQL语句输出[^3][^4]。 #### 验证结果 重启项目后,控制台将不再输出类似以下的SQL日志: ``` ==> Preparing: SELECT * FROM sys_user... ==> Parameters: <== Total: 10 ``` > **注意事项** > 1. 若依默认使用MyBatis-Plus,配置项前缀应为`mybatis-plus`而非`mybatis` > 2. 多模块项目需在主模块配置[^2] > 3. 生产环境建议同时配置日志文件轮转策略,避免磁盘占满[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值