Mybatis 开启控制台打印sql语句

文章介绍了如何在SpringBoot应用中,无论是使用Mybatis还是Mybatis-Plus,通过配置application.yml文件来开启SQL日志打印。对于Mybatis-Plus,还详细列出了相关依赖、配置以及分页设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:无论使用mybatis-plus还是mybatis,只要在springboot的配置文件----appcation.yml中添加:就可以答应sql

logging:
  level:
    org.jeecg.modules.hdx.mapper: debug

org.jeecg.modules.hdx.mapper为@mapper注解下面的类,或者继承BaseMapper,或者@MapperScan扫描包的类

2:如果使用的是springboot+mybatis-plus的话

#mybatis plus 设置
mybatis-plus:
  mapper-locations: classpath*:org/jeecg/modules/**/xml/*Mapper.xml
  global-config:
    # 关闭MP3.0自带的banner
    banner: false
    db-config:
      #主键类型  0:"数据库ID自增",1:"该类型为未设置主键类型", 2:"用户输入ID",3:"全局唯一ID (数字类型唯一ID)", 4:"全局唯一ID UUID",5:"字符串全局唯一ID (idWorker 的字符串表示)";
      id-type: 4
      # 默认数据库表下划线命名
      table-underline: true
  configuration:
    # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

2-1:在pom文件引入依赖

  <dependency>
       <groupId>com.baomidou</groupId>
       <artifactId>mybatis-plus-boot-starter</artifactId>
       <version>3.3.1</version>
  </dependency>

3:如果使用的是springboot+mybatis的话(包含分页)

#数据库的配置
spring:
 datasource:
  driver-class-name: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://localhost:3306/mytest?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
  username: root
  password: root
#mybatis的配置
mybatis:
 configuration:
#   sql日志显示,这里使用标准显示
  log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#  数据库中如果有类似 如  user_name 等命名,会将 _后的字母大写,这里是为了和实体类对应
  map-underscore-to-camel-case: true
#  配置mapper文件的路径
 mapper-locations: classpath:org/jeecg/modules/hdx.mapper/*/mapper/*.xml
 #pageHelper配置分页(官网推荐配置)
pagehelper:
 helperDialect: mysql
 reasonable: true
 supportMethodsArguments: true
 params: count=countSql

3-1:pom配置(包含分页)

	<!--web,servlet引入-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mybatis依赖-->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.0.1</version>
</dependency>
<!--mysql依赖-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>
<!--快速操作实体类-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
<!--单元测试-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<!—pagehelper   mybatis的分页插件依赖-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.3</version>
</dependency>

<think>好的,我现在需要帮助用户解决如何配置MyBatis-Plus以打印SQL语句的问题。首先,我得回忆一下之前学过的相关知识,并结合提供的引用内容来组织答案。 根据用户提供的引用,引用[1]和引用[2]都提到了在配置文件中设置log-impl属性,使用StdOutImpl来启用SQL语句打印。这应该是关键步骤。引用[3]和[4]可能涉及动态SQL和自己编写SQL的情况,但用户的问题主要是配置打印,所以可能需要重点放在前两个引用上。 接下来,我需要确定回答的结构。用户要求结构清晰,分步骤解决。可能需要分点说明,比如YAML配置、Properties配置、日志级别调整等。同时,用户需要示例代码块,所以得提供具体的配置示例。 另外,用户提到生成相关问题,所以最后需要添加相关问题部分。可能需要考虑其他相关配置,比如参数打印、日志文件输出、性能影响等。 需要注意的是,确保使用正确的中文表达,避免术语错误。同时,所有行内代码或配置项需要用$...$或者代码块格式,但根据问题中的示例,配置应该用代码块包裹,比如YAML和Properties的配置示例。 可能还需要提到日志框架的配置,比如Logback或Log4j2,因为仅仅设置MyBatis-Plus的log-impl可能不够,特别是如果需要将日志输出到文件而不是控制台的话。引用[2]提到了需要将日志输出到文件,可能需要结合日志框架的配置,比如在logback-spring.xml中设置logger的级别和appender。 此外,需要注意不同环境下的配置差异,比如Spring Boot的不同配置文件格式(YAML vs. Properties),以及不同版本的MyBatis-Plus是否有配置变化。但根据引用内容,配置项是mybatis-plus.configuration.log-impl,所以应该适用。 最后,确保所有引用标记正确,比如引用[1]和引用[2]在适当的位置标注,例如在YAML配置和日志文件部分。 总结步骤: 1. 配置文件设置log-impl为StdOutImpl(YAML和Properties两种方式)。 2. 调整日志级别为DEBUG以确保详细信息输出。 3. 结合日志框架配置,将日志输出到文件。 4. 注意事项,比如生产环境关闭日志以避免性能问题。 5. 生成相关问题,涉及参数打印、动态SQL、性能影响等。</think>### 如何配置MyBatis-Plus以打印SQL语句 配置MyBatis-Plus打印SQL语句的核心是通过修改日志实现类,将SQL语句输出到控制台或日志文件中。以下是具体步骤: --- #### 1. **通过配置文件启用SQL日志** 在Spring Boot项目的`application.yml`(或`application.properties`)中添加以下配置: **YAML格式**: ```yaml mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 控制台打印SQL[^1][^2] ``` **Properties格式**: ```properties mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl ``` 此配置会指示MyBatis-Plus使用标准输出打印SQL语句。 --- #### 2. **调整日志级别** 为确保SQL日志完整显示,需将相关Mapper接口的日志级别设为`DEBUG`。在`application.yml`中添加: ```yaml logging: level: com.example.mapper: debug # 替换为实际的Mapper包路径 ``` --- #### 3. **输出到日志文件(可选)** 若需将SQL日志写入文件,需配置日志框架(如Logback)。在`logback-spring.xml`中添加: ```xml <configuration> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>logs/sql.log</file> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <logger name="com.example.mapper" level="DEBUG"> <!-- Mapper包路径 --> <appender-ref ref="FILE"/> </logger> </configuration> ``` --- #### 4. **验证配置** 启动应用并执行数据库操作,控制台或日志文件会输出类似以下内容: ``` ==> Preparing: SELECT id,name FROM user WHERE age > ? ==> Parameters: 18(Integer) <== Total: 2 ``` --- #### **注意事项** - **性能影响**:生产环境中应关闭SQL日志,避免I/O开销[^2]。 - **动态SQL**:若使用Wrapper(如`QueryWrapper`),MyBatis-Plus会自动拼接SQL,通过`${ew.customSqlSegment}`插入条件[^3]。 - **自定义SQL**:在XML或注解中编写的SQL也会被打印[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值