精华内容
下载资源
问答
  • mybatis-plus配置控制台打印完整带参数SQL语句

    万次阅读 多人点赞 2019-05-28 16:18:53
    问题背景 通常我们开发的时候,需要联合控制台和Navicat/PLSQL等工具进行语句的拼接检查,如果只是输出了一堆?...#mybatis-plus配置控制台打印完整带参数SQL语句 mybatis-plus: configuration: log-impl: org...

    问题背景

    通常我们开发的时候,需要联合控制台和Navicat/PLSQL等工具进行语句的拼接检查,如果只是输出了一堆???,那么将极大降低我们的效率。因此我们需要输出完整的SQL语句以便调试。

    Update

    解决方案(StdOutImpl)

    请注意: 部分朋友反馈不生效,估计跟引入的包有一定关系,druid+mybatis-plus-boot-starter 就亲测有用。请检查是否有log4j相关实现类。

    如果是application.yml

    #by zhengkai.blog.csdn.net
    #mybatis-plus配置控制台打印完整带参数SQL语句
    mybatis-plus:
      configuration:
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    

    如果是application.properties,添加:

    #mybatis-plus配置控制台打印完整带参数SQL语句
    mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
    

    Mybatis内置的日志工厂提供日志功能,具体的日志实现有以下几种方式:

    • SLF4J
    • Apache Commons Logging
    • Log4j 2
    • Log4j
    • JDK logging
    • no logging

    具体选择哪个日志实现由MyBatis的LogFactory内置日志工厂确定。它会使用最先找到的(按上文列举的顺序查找)。 如果一个都未找到,日志功能就会被禁用。

        static {
            tryImplementation(LogFactory::useSlf4jLogging);
            tryImplementation(LogFactory::useCommonsLogging);
            tryImplementation(LogFactory::useLog4J2Logging);
            tryImplementation(LogFactory::useLog4JLogging);
            tryImplementation(LogFactory::useJdkLogging);
            tryImplementation(LogFactory::useNoLogging);
        }
    

    不少应用服务器的classpath中已经包含Commons Logging,如Tomcat和WebShpere, 所以MyBatis会把它作为具体的日志实现。

    记住这点非常重要。这意味着,在诸如 WebSphere的环境中——WebSphere提供了Commons Logging的私有实现,你的Log4J配置将被忽略。

    这种做法不免让人悲摧,MyBatis怎么能忽略你的配置呢?事实上,因Commons Logging已经存 在,按优先级Log4J自然就被忽略了!

    控制台输出

    --- [ XNIO-1 task-12] c.s.cms.controller.IndexController       : username-admin-password-123456-****
    Creating a new SqlSession
    SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@708e9ffd] was not registered for synchronization because synchronization is not active
    --- [ XNIO-1 task-12] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited
    JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@62b13210] will not be managed by Spring
    ==>  Preparing: select * from user t where t.user_code='admin' and t.password='123456' 
    ==> Parameters: 
    <==    Columns: user_id, user_code, create_date, modify_date, user_name, password, status, role_id, department_id, major_id, classes_id, year
    <==        Row: 1, admin, 2020-02-15 22:14:32, 2020-02-18 23:38:51, Moshow K ZHENG, 123456, 1, 9, 1, 13, 113, 2020
    <==      Total: 1
    Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@708e9ffd]
    

    解决方案(手写MybatisPlusOutImpl)

    配置文件

    mybatis-plus:
      configuration:
    #    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    #    改为自己写的
        log-impl: com.softdev.system.config.MybatisPlusOutImpl
    

    java类 MybatisPlusOutImpl

    package com.softdev.system.config;
    
    import org.apache.ibatis.logging.Log;
    /**
     * @Description MybatisPlusOutImpl,直接使用控制台输出日志
     * @Author zhengkai.blog.csdn.net
     **/
    public class MybatisPlusOutImpl implements Log {
        public MybatisPlusOutImpl(String clazz) {
            System.out.println("MybatisPlusOutImpl::"+clazz);
        }
    
        public boolean isDebugEnabled() {
            return true;
        }
    
        public boolean isTraceEnabled() {
            return true;
        }
    
        public void error(String s, Throwable e) {
            System.err.println(s);
            e.printStackTrace(System.err);
        }
    
        public void error(String s) {
            System.err.println("MybatisPlusOutImpl::"+s);
        }
    
        public void debug(String s) {
            System.out.println("MybatisPlusOutImpl::"+s);
        }
    
        public void trace(String s) {
            System.out.println("MybatisPlusOutImpl::"+s);
        }
    
        public void warn(String s) {
            System.out.println("MybatisPlusOutImpl::"+s);
        }
    }
    

    解决方案(LOG-DEBUG模式)

    # 在application.yml 中增加配置,指定 mapper 文件所在的包,进入DEBUG模式
    logging:
      level:
        com.baomidou.example.mapper: debug
    

    官方解决方案p6spy(不建议)

    查看p6spy最新版本 ,请注意,该方案为侵入式的JDBC级方案。

    pom.xml引入

    <!-- https://mvnrepository.com/artifact/p6spy/p6spy -->
    <dependency>
        <groupId>p6spy</groupId>
        <artifactId>p6spy</artifactId>
        <version>3.9.1</version>
    </dependency>
    

    这是yaml版本,还没试过,待我实验一下.

    spring:
      datasource:
        driver-class-name: com.p6spy.engine.spy.P6SpyDriver
        url: jdbc:p6spy:h2:mem:test
        ...
    

    这是官方提供的properties版本

    #3.2.1以上使用
    modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory
    #3.2.1以下使用或者不配置
    #modulelist=com.p6spy.engine.logging.P6LogFactory,com.p6spy.engine.outage.P6OutageFactory
    # 自定义日志打印
    logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger
    #日志输出到控制台
    appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
    # 使用日志系统记录 sql
    #appender=com.p6spy.engine.spy.appender.Slf4JLogger
    # 设置 p6spy driver 代理
    deregisterdrivers=true
    # 取消JDBC URL前缀
    useprefix=true
    # 配置记录 Log 例外,可去掉的结果集有error,info,batch,debug,statement,commit,rollback,result,resultset.
    excludecategories=info,debug,result,commit,resultset
    # 日期格式
    dateformat=yyyy-MM-dd HH:mm:ss
    # 实际驱动可多个
    #driverlist=org.h2.Driver
    # 是否开启慢SQL记录
    outagedetection=true
    # 慢SQL记录标准 2 秒
    outagedetectioninterval=2
    
    展开全文
  • 控制台打印红黑树.rar

    2021-05-17 10:29:35
    控制台打印红黑树
  • H5app手机端控制台打印vConsole H5app手机端控制台打印vConsole 用于开发H5app打印。显示在手机端控制台
  • 今天小编就为大家分享一篇python实现控制台打印的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要为大家详细介绍了java控制台打印本月的日历,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 的方式往控制台打印一些输出,以便观察程序的运行情况。 在Java中(eclipse、myeclipse中),经常使用的是System.out.println("Hello World");的方式。 在Android中,经常使用的是Log.d("Hello World...

    在Qt中,经常使用qDebug()<<"Hello World";的方式往控制台打印一些输出,以便观察程序的运行情况。

    在Java中(eclipse、myeclipse中),经常使用的是System.out.println("Hello World");的方式。

    在Android中,经常使用的是Log.d("Hello World");

    . . .

    在C#的时候,使用的是Console.WriteLine("Hello World");

    开发winform的时候,需要先往主函数所在的源文件中加入以下内容。

    引入库:
    using System.Runtime.InteropServices;

    在Main()前,添加:

    [DllImport("kernel32.dll")]
    public static extern bool AllocConsole();
    [DllImport("kernel32.dll")]
    static extern bool FreeConsole();

    在Main()中,第一行添加:

    AllocConsole();

    在Main()中,最后一行添加:

    FreeConsole();

    示例:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    // 控制台输出,需加入此库
    using System.Runtime.InteropServices;

    namespace HelloWorld_WindowsForm
    {
        static class Program
        {
            [DllImport("kernel32.dll")]
            public static extern bool AllocConsole();
            [DllImport("kernel32.dll")]
            static extern bool FreeConsole();

            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                // 允许调用控制台输出
                AllocConsole();

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new LoginPage());

                // 释放
                FreeConsole();
            }
        }
    }

    打赏二维码:

    展开全文
  • Java 控制台 打印表格 可前往http://blog.csdn.net/j506825719/article/details/78996659查看效果图后再决定是否需要下载。
  • MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架,下面给大家介绍Mybatis控制台打印Sql语句的实现代码,非常不错,感兴趣的朋友一起看下吧
  • 1、正常设置下,Eclipse控制台打印超过一定数量时,会自动删除部分打印。设置不自动删除,无限打印: Windows — Preferences — Run/Debug — Console,取消勾选Limit console output,如图: ...

    1、正常设置下,Eclipse控制台打印超过一定数量时,会自动删除部分打印。设置不自动删除,无限打印:
    Windows — Preferences — Run/Debug — Console,取消勾选Limit console output,如图:
    在这里插入图片描述

    展开全文
  • postman控制台打印数据

    2020-12-24 16:10:19
    1.打开控制台,快捷键:Ctrl+Alt+c 2.控制台打印方法console.log()

    1.打开控制台,快捷键:Ctrl+Alt+c在这里插入图片描述
    2.控制台打印方法console.log()
    在这里插入图片描述

    展开全文
  • C#控制台打印输出对齐

    千次阅读 2017-12-12 18:45:13
    C#控制台打印对齐
  • 控制台打印指定样式是很方便的
  • java代码-控制台打印正三角形和倒三角形
  • Mybatis 开启控制台打印sql语句

    万次阅读 多人点赞 2018-09-21 13:09:08
    springboot+mybatis整合过程中,开启控制台sql语句打印的两种方式: 方法一: 1.在mybatis的配置文件中添加: &lt;settings&gt; &lt;!-- 打印sql日志 --&gt; &lt;setting name="...
  • SpringBoot控制台打印SQL语句

    万次阅读 2019-07-16 14:11:04
    控制台打印sql语句 mybatis: # spring boot集成mybatis的方式打印sql configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 在log日志中打印 logging: level: ...
  • 一、需要mybatis和log4j的jar; 二、然后在log4j.properties文件里面将下面的代码粘贴进去就可以了: log4j.rootLogger=DEBUG, Console #Console log4j.appender.Console=org.apache.log4j.ConsoleAppender ...
  • JAVA在控制台打印表格的工具类,链式调用,注释齐全。 支持自定义:表格对齐方式、是否等宽、左右边距、水平垂直交叉空白填充符,打印数据格式支持: Object[][] List《Object[]》 List《List《Object》》 List...
  • 谷歌浏览器控制台打印信息!前端开发人员使用,可查看自己开发的一些必要的信息
  • Mybatis SQL语句控制台打印

    万次阅读 2018-01-19 14:42:46
    Mybatis SQL语句控制台打印 一、普通Spring项目:修改Mybatis.xml configuration> settings> setting name="logImpl" value="STDOUT_LOGGING" /> settings> configuration> 二、 SpringBoot:修改...
  • 主要介绍了springboot+mybatis配置控制台打印sql日志的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 控制台打印带样式的文字

    千次阅读 2019-03-19 09:24:35
    大家想必平时都会在控制台打印东西,用来测试一些东西。 但是大家直达怎样在控制台打印出我们想要的带样式的文字嘛? 带大家来看看。 console.log('%c 何以解忧,唯有暴富!!!','color:white;font-size:50px;...
  • 主要介绍了mybatis-plus配置控制台打印完整带参数SQL语句,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • idea控制台打印乱码

    千次阅读 2016-08-28 22:08:39
    现象当你把idea的编码都设置为utf-8之后,编译项目在tomcat运行时,控制台打印显示乱码,这个时候可以通过设置vm参数编码,来使控制台打印正常。设置步骤 Edit Configurations
  • python控制台打印logo复制logo打印文件内容到控制台 复制logo 在https://tools.kalvinbg.cn/txt/ascii上搜索你想生成的艺术文字,然后复制到文件。比如mylog.log文件中。 打印文件内容到控制台 python示例如下: ...
  • typed.js是一款模拟控制台打印文字效果的js插件。typed.js可以自由的控制要打印的文字,以及打印的速度等,可以制作出逼真的打印文字效果。
  • 复制浏览器控制台打印的数据

    千次阅读 2019-08-27 12:44:02
    因为控制台打印的数据内容层次很深,一个一个属性点开看很麻烦,怎么直接复制出来?因为控制台打印的数据内容层次很深,一个一个属性点开看很麻烦,怎么直接复制出来?下面来说一下具体步骤,简单方便,超级好用哦!...
  • C++ 控制台打印无输出 无法查找或打开PDB文件.pdf
  • java控制台打印进度条

    千次阅读 2019-03-22 18:29:09
    今天有一个控制台打印进度条的需求,研究了一下,原理很简单,利用\b输出退格键就行了 public class TerminalTest{ public static void main(String[] args) { for (int i = 0; i <= 100; i++) { ...
  • 今天小编就为大家分享一篇关于linux shell之控制台打印各种颜色字体和背景的实现方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 266,184
精华内容 106,473
关键字:

控制台打印