栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mybatis7模糊查询,日志

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mybatis7模糊查询,日志

1.模糊查询

%表示任意长度字符,_表示任意一个字符

${key}:表示获取参数,先获取参数的的值拼接到sql语句中,再编译执行sql语句,可能引起sql注入问题

#{key}:表示获取参数,先预编译sql语句,再将获取参数的的值拼接到sql语句中,可以避免sql注入问题

${key}和#{key}的区别

使用${key}时将需要的%或者_符号在sql语句中给出
    public List searchStudentByName(String name);
    

        select sid,sname,sgender,sage,scid
        from students
        where sname like "%${name}%"
    

测试:

    @Test
    public void searchStudentByName() {
        StudentDAO studentDAO=mybatisUtils.getMapper(StudentDAO.class);
        List studentList=studentDAO.searchStudentByName("刚");
        studentList.forEach(System.out::println);
    }
使用#{key}时将需要的%或者_符号在参数中给出
    public List searchStudentByName(String name);
    
        
        select sid,sname,sgender,sage,scid
        from students
        where sname like #{nameparams}
    
    @Test
    public void searchStudentByName() {
        StudentDAO studentDAO=mybatisUtils.getMapper(StudentDAO.class);
        List studentList=studentDAO.searchStudentByName("刚");
        studentList.forEach(System.out::println);
    }
参数可以起别名也能用Map,相应的sql语句中要对应
    public List searchStudentByName(@Param("nameparams") String name);
    
2.日志

mybatis作为一个封装好的框架,其运行过程无法跟踪,为了让开发者了解执行流程及步骤,mybatis框架本身支持log4j日志框架,对运行过程进行跟踪记录。我们只需要就你行日志配置,就可以看到mybatis运行过程中的日志信息。

log4j1.x版本 2.1添加框架依赖

log4j log4j 1.2.17

2.2 添加日志配置文件
  • 在resource目录下创建名为log4j.properties的文件,必需严格为这个名字
  • 在log4j.properties中配置日志输出的方式
# 设置 
log4j.rootLogger=DEBUG,debugFile, warnFile, errorFile,stdout
# MyBatis 日志配置
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# 输出到控制台中
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%t] %d %p [%c] - %m%n
# 输出debug级别以上的日志到:src/logs/debug.log
log4j.appender.debugFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.debugFile.File=src/logs/debug.log
log4j.appender.debugFile.Append=true
log4j.appender.debugFile.Threshold=debug
log4j.appender.debugFile.layout=org.apache.log4j.PatternLayout
log4j.appender.debugFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
# 输出warn级别以上的日志到:src/logs/warn.log
log4j.appender.warnFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.warnFile.File=src/logs/warn.log
log4j.appender.warnFile.Append=true
log4j.appender.warnFile.Threshold=warn
log4j.appender.warnFile.layout=org.apache.log4j.PatternLayout
log4j.appender.warnFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
# 输出error级别以上的日志到:src/logs/error.log
log4j.appender.errorFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorFile.File=src/logs/error.log
log4j.appender.errorFile.Append=true
log4j.appender.errorFile.Threshold=error
log4j.appender.errorFile.layout=org.apache.log4j.PatternLayout
log4j.appender.errorFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

也可以使用xml文件 




    
    
        
            
        
    
 
    
    
        
    

    
    
        
    
 
    
        
    
    
    
    
        
        
        
    

 2.3编写初始化类

在utils文件夹下写InitLogRecord类初始化:

package utils;

import org.apache.log4j.PropertyConfigurator;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class InitLogRecord {
    public static void initLog() {
        FileInputStream fileInputStream = null;
        try {
            Properties properties = new Properties();
            fileInputStream = new FileInputStream("src/main/resources/log4j.properties");
            properties.load(fileInputStream);
            PropertyConfigurator.configure(properties);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (fileInputStream != null) {
                try {
                    fileInputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
4.使用:

在需要记录日志的方法调用初始化

public class Test {
    public static void main(String[] args) {
        InitLogRecord.initLog();
        StudentDAO studentDAO=mybatisUtils.getMapper(StudentDAO.class);
        List studentList=studentDAO.searchStudentByName("小");
        studentList.forEach(System.out::println);
    }
}
log4j2.x版本 1.在pom.xml导入依赖


    org.apache.logging.log4j
    log4j-core
    2.17.1
2.配置文件

在resource文件夹下创建上述log4j2.xml文件:







    
        
        
        logs2

        
        
        src/${logFileName}
        
        
        
        

        
        %d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %l - %m%n
        
        
        
        %d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %C.%M[%L line] - %m%n

        
        20MB
        
        DEBUG

        
        
        ${basePath}/all.log
        
        ${basePath}/%d{yyyy-MM}/all-%d{yyyy-MM-dd-HH}-%i.log.gz
        
        500
        
        12
        
        true

        
        
        ${basePath}/info.log
        
        ${basePath}/%d{yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log.gz
        
        100
        
        1
        
        true

        
        
        ${basePath}/warn.log
        
        ${basePath}/%d{yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.gz
        
        100
        
        1
        
        true

        
        
        ${basePath}/error.log
        
        ${basePath}/%d{yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.gz
        
        100
        
        1
        
        true

        
        
        DEBUG

    

    
    
        
        
            
            
            
            
        

        
        
            
            
                
                
            
            
            
        

        
        
            
            
                
                
            
            
            
                
                
            
        

        
        
            
            
                
                
            
            
            
                
                
            
        

        
        
            
            
                
                
            
            
            
                
                
            
        
    

    
    
        
        
        
            
        
        
        
            
        
        
        
            
        
        
        
            
        
        

        
        
            
            
            
            
            
        
    

3.使用:
public class Test {
    //log4j2.x
    protected static Logger logger = LogManager.getLogger();
    public static void main(String[] args) {
        
        StudentDAO studentDAO=mybatisUtils.getMapper(StudentDAO.class);
        List studentList=studentDAO.searchStudentByName("小");
        studentList.forEach(System.out::println);
        
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/874421.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号