分类 默认分类 下的文章

LEFT JOIN是一种SQL语句中常用的关联查询方式,它可以返回包括左表中所有记录和与右表中记录匹配的记录在内的所有记录。如果在右表中没有匹配数据的话,那么左表中对应的字段值会被置为NULL。

如果需要将找不到匹配数据的记录调整为排序到最后,可以在ORDER BY子句中使用IFNULL函数。IFNULL函数用于返回两个表达式的第一个非NULL值,语法为IFNULL(expr1,expr2),如果expr1不为NULL,则返回expr1的值,否则返回expr2的值。

例如,假设有两个表A和B,需要将左表A和右表B进行LEFT JOIN查询,并按照B表中的字段排序。如果在B表中找不到对应的数据,则需要将其排序到最后。可以使用如下SQL语句:

SELECT A., B.
FROM A
LEFT JOIN B ON A.id = B.id
ORDER BY IFNULL(B.field, 'zzz');
该语句中使用IFNULL函数,将B表中的待排序字段作为第一个参数,将一个特殊的字符串’zzz’作为第二个参数。当B表中的待排序字段为NULL时,IFNULL函数返回’zzz’,使得这些记录排在最后。

logback解释说明

logback使用手册

Logback解释说明

Logback是一个流行的用于Java应用程序的日志框架,它为应用程序提供了灵活的配置选项和高效的日志记录和跟踪功能。下面是详细的使用说明:

怎么在SpringBoot中集成使用logback

logback.png

  1. 添加Logback依赖

在Maven项目中,可以通过以下方式在pom.xml文件中添加Logback依赖:

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>
  1. 配置Logback

Logback通过XML文件配置。它提供了三种不同类型的文件来配置不同的功能:logback.xml,logback-test.xml和logback.groovy。

在logback.xml中,可以配置日志输出到控制台或文件,设置日志级别,定义日志转换模式以及配置日志归档策略等。

以下是一个简单的logback.xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{35} - %msg%n</pattern>
        </encoder>
    </appender>
 
    <root level="INFO">
        <appender-ref ref="console" />
    </root>
 
</configuration>
1.配置根路径,即日志保存路径 <property name="log.path" value="/home/wukong/logs"/>
2.这是一个用于配置日志输出格式的属性。在这个例子中,属性名是"log.pattern",其值是一个包含特定占位符的字符串。

下面是对占位符的解释:

“%d{yyyy-MM-dd HH:mm:ss}”:表示输出日志的时间戳,格式为"年-月-日 时:分:秒"。
“[%thread]”:表示输出日志的线程名。
“%-5level”:表示输出日志的级别(如DEBUG、INFO、WARN等),并且最多占用5个字符的宽度。其中,"-"表示左对齐输出。
“%logger{36}”:表示输出日志的记录器(或类)名,最多占用36个字符的宽度。
“%msg%n”:表示输出日志的具体信息(即日志消息),并在最后换行。
通过使用这些占位符,我们可以按照指定的格式输出日志,方便查阅和分析。在示例中,日志的输出格式类似于:“时间戳 [线程名] 级别 记录器名 - 日志消息”。
上述配置文件中,定义了一个名为console的控制台appender,设置了输出格式模式。根记录器设置了日志级别为INFO,并将appender引用进来。

名词解释:appender

在日志记录系统中,appender是一种用于定义日志输出目标的组件。它决定了日志消息应该被发送到哪里,比如控制台、文件、数据库或网络等。Appender包含日志消息的格式化和输出逻辑,以及确定日志记录的方式和位置。它充当了将日志消息从应用程序代码发送到指定位置的中间层。

在日志配置中,通常可以定义多个appender以满足不同的需求。每个appender都具有唯一的名称,并与一个或多个日志记录器相关联。这样,日志记录器就可以将日志消息传递给相应的appender进行处理和输出。

常见的appender类型包括:

ConsoleAppender:将日志消息输出到控制台。
FileAppender:将日志消息输出到文件。
RollingFileAppender:类似于FileAppender,但支持滚动日志文件,即自动切割为多个文件以避免文件过大。
SocketAppender:将日志消息通过网络套接字发送到远程位置。
DatabaseAppender:将日志消息存储到数据库中。
通过配置appender,我们可以灵活控制日志消息的输出目标和方式,以满足特定的需求和场景。

3. 在代码中使用Logback

使用Logback非常简单。在程序中引入Logger类,然后调用Logger的方法即可记录日志消息。以下是一个简单的Java类,它使用了Logback记录日志:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
public class MyClass {
 
    private static final Logger LOGGER = LoggerFactory.getLogger(MyClass.class);
 
    public void doSomething() {
        LOGGER.debug("This is a debug message");
        LOGGER.info("This is an info message");
        LOGGER.warn("This is a warning message");
        LOGGER.error("This is an error message", new Exception("Test exception"));
    }
 
}

在这个类中,创建了一个静态Logger实例,并用getInstance()方法初始化,然后使用Logger的不同级别方法记录不同类型的日志消息。

4. 运行应用程序并查看日志

接下来就可以运行应用程序,并查看日志输出了。如果你使用Logback默认配置,日志输出将会在控制台上显示。如果你在logback.xml文件中定义了文件appender,日志消息将会写入到默认路径的文件中,通常是在项目的根目录下。

以上就是使用Logback的详细说明。Logback是一个功能丰富的日志框架,完全可以满足大部分Java应用程序的日志需求。