springboot集成了mybatis为啥控制台不显示sql语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot集成了mybatis为啥控制台不显示sql语句相关的知识,希望对你有一定的参考价值。

你好,你可以这样做:

@Configuration
public class MyBatisConfig 

   @Value("$spring.mybatis.isShowLog")
   private String isShowLog;

   @Autowired
   private DataSource dataSource;

   @Bean(name = "sqlSessionFactory")
   public SqlSessionFactoryBean sqlSessionFactory(
         ApplicationContext applicationContext) throws Exception 
      SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
      sessionFactory.setDataSource(dataSource);
      sessionFactory.setPlugins(new Interceptor[]  pageHelper() );
      
      org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
      if("true".equalsIgnoreCase(isShowLog))
         configuration.setLogImpl(StdOutImpl.class);
      

      sessionFactory.setMapperLocations(applicationContext.getResources("classpath:mapper/*.xml"));
      return sessionFactory;
   


日志实现自己看着办,进去看看都有哪些实现吧

参考技术A :mybatis默认使用log4j,当有self4j这个日志jar包存在时会无法打印sql,请移除或者在工程启动本回答被提问者采纳

详解SpringBoot集成Mybatis

在下文中详细叙述了SpringBoot集成Mybatis过程,在实现实验的基础上有些步骤可以进一步简化,加速开发过程。

1、lombok插件使用

https://blog.csdn.net/daniaoxp/article/details/119381941

在第5步骤中新建了Student类,设置了id,name,age,score变量,接着进行参数的set,get方法,构造有参,无参,设置比较繁琐,通过lombok插件可以简化操作。

1.1 添加依赖

 <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>

其实这一步我们已经做过了,还记得下面这张图吗,我们已经选过lombok,在pom.xml中我们就能看到该依赖了。

1.2 在idea中添加lombok插件

  • 打开设置,选中Plugins,在仓库中搜索插件

- 如图,我已经安装完成

1.3 lombok插件相关注释使用

  • 在Student实体类中我们可以这样操作
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Student 
    private Integer id;
    private String name;
    private Integer age;
    private Double score;

@Data : 注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法
@AllArgsConstructor : 注在类上,提供类的全参构造
@NoArgsConstructor : 注在类上,提供类的无参构造

2、free Mybatis plugin插件使用

为什么要使用这款插件呢?先简单回顾下dao层的操作,先新建一个接口,再新建对应的Mapper文件。这款插件的作用就是在此接口的基础上能自动生成该Mapper文件!

  • 安装方式跟刚才插件介绍一样

在上图右侧简介中我们看到该插件的主要功能,我们看其中的两个。

1、生成mapper xml文件
2、快速从代码跳转到mapper及从mapper返回代码

2.1生成mapper xml文件

为了实验能进行我们先删除resources下mapper包中的mapper xml文件

  • 回到bean层中的StudentMapper接口,在类名中按ALT+ENTER,如下图,选箭头所指

  • 选择Choose another

  • 选中①处的包,可以对应②处看,点击OK

  • 这时在mapper包里看到了StudentMapper.xml文件,而且相关的内容已经填写完成

  • 再回到bean层中的StudentMapper接口,在方法中按ALT+ENTER,如下图,选箭头所指

  • 在对应的mapper文件中看到了自动生成的select语句!大大简化了操作

2.2、快速从代码跳转到mapper及从mapper返回代码

  • 在接口文件中第9行看到了向右的一个箭头,点击一下

  • 跳到了对应的mapper文件,如下图,在该那文件中出现向左的箭头,点击一下又会跳转到上面的界面

3、@MapperScan注释使用

  • 在bean层中的StudentMapper接口上添加了Mapper注释,如果接口多,那么依次要添加注释,可以采用另一种方法

  • 在主函数中使用@MapeprScan注释,如下图,加上该接口所在路径即可

以上是关于springboot集成了mybatis为啥控制台不显示sql语句的主要内容,如果未能解决你的问题,请参考以下文章

spring boot集成mybatis+事务控制

Spring boot + mybatis + 多数据源入门搭建 + 跨域集成以及过滤器配置的方式和过滤器加载顺序控制

SpringBoot集成MyBatis的分页插件PageHelper

Spring Boot集成Mybatis

SpringBoot集成mybatis配置

详解SpringBoot集成Mybatis