请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

通用Mapper如何输出执行的SQL语句?

不知道为什么我用这个方法是查不到数据的想看一下输出的执行的sql也没法看,所以老师帮我找一下有关打印通用
mapper打印日志的方法,麻烦老师了

   this.userMapper.selectByPrimaryKey(id)

用这个方法倒可以

    @Autowired(required = false)
    private UserMapper userMapper;
    public List<User> findById(Integer id) {
        User user = new User();
        user.setId(id);
//        this.userMapper.selectByPrimaryKey(id)
        return this.userMapper.select(user);
    }

正在回答

2回答

您好,很棒的问题哦!这其实是一个Mybatis基础问题。

要想看到SQL非常简单,只需要在application.yml添加如下内容即可:

logging:
  level:
    # 这样,这个包下的所有mapper都会打印出执行的SQL
    com.itmuch.usercenter.dao: debug

打印出来的日志如下:

2019-07-02 16:51:05.655 DEBUG 97433 --- [nio-8080-exec-4] c.i.u.d.u.UserMapper.selectByPrimaryKey  : ==>  Preparing: SELECT id,wx_id,wx_nickname,roles,avatar_url,create_time,update_time,bonus FROM user WHERE id = ? 
2019-07-02 16:51:05.656 DEBUG 97433 --- [nio-8080-exec-4] c.i.u.d.u.UserMapper.selectByPrimaryKey  : ==> Parameters: 1(Integer)
2019-07-02 16:51:05.658 DEBUG 97433 --- [nio-8080-exec-4] c.i.u.d.u.UserMapper.selectByPrimaryKey  : <==      Total: 1


0 回复 有任何疑惑可以回复我~
  • 提问者 夏J #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2019-07-02 17:18:39
  • 提问者 夏J #2
    是我配错了
    logging:
      level:
        com.itmuch.userconter.dao.user: DEBUG
    多谢老师
    回复 有任何疑惑可以回复我~ 2019-07-02 17:20:02
大目 2019-07-02 19:03:20

对了,这个问题还可以拓展一下。对于IDEA,可以安装Mybatis Log Plugin,让日志的显示更加的人性化,从而提升调试、排错的效率。

截图演示:

68747470733a2f2f706c7567696e732e6a657462

最后,附上个人总结的所有IDEA的学习资源,详见:

https://github.com/eacdy/awesome-idea#114-mybatis-log-plugin

0 回复 有任何疑惑可以回复我~
  • 提问者 夏J #1
    谢谢老师,其实这个插件一直在用,我们公司用的是mybatis-plu,s功能和通用mapper差不多,个人感觉比通用mapper好,哈哈
    回复 有任何疑惑可以回复我~ 2019-07-02 20:42:57
  • 大目 回复 提问者 夏J #2
    mybatis-plus功能上是比mybatis强大一些,但都是自己定义的注解。未来mybatis-plus不维护了的话,就会比较尴尬。
    通用mapper是JPA注解,标准化的。即使未来通用mapper不维护了,自己基于标准注解做点改动也可以继续用。
    ----
    以上我是一家之言,带有一定主观看法,看看就OK了,不用尽信,哈哈。
    回复 有任何疑惑可以回复我~ 2019-07-02 22:08:46
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信