• MyBatis使用模糊查询用户信息及log4j配置文件详解


    1.1 根据用户名称模糊查询用户信息

    根据用户名模糊查询用户信息,只需要我们更改映射文件中的sql语句。其他的内容跟上一篇的内容是一样的

    1.2添加根据用户名称模糊查询用户信息的sql语句

      实例中是查询员工信息emp表,所以mapper文件sql语句改为以下内容:

    1 <!-- 根据用户名模糊查询
    2         ${} 表示sql拼接 将接受的参数不加任何修饰拼接在sql中
    3         ${value}接受参赛的内容,如果传入的简单类型,${}中必须使用value
    4         %表示任意字符
    5     -->
    6     <select id="selectEmpByName" parameterType="java.lang.String"
    7         resultType="com.mybatis.model.Emp">
    8         select * from emp_message where emp_name like '${value}%';
    9     </select>

    2.1Test程序编写

     1 package com.mybatis.test;
     2 
     3 import java.io.IOException;
     4 import java.io.InputStream;
     5 
     6 import org.apache.ibatis.io.Resources;
     7 import org.apache.ibatis.session.SqlSession;
     8 import org.apache.ibatis.session.SqlSessionFactory;
     9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    10 
    11 import com.mybatis.model.Emp;
    12 /**
    13  * 根据用户名称进行模糊查询
    14  * @author Administrator
    15  *
    16  */
    17 public class FindEmpByNameTest {
    18 
    19     public static void main(String[] args) {
    20         InputStream inputStream = null;
    21         try {
    22             //mybatis配置文件
    23             String reString="sqlMapConfig.xml";
    24             //得到配置文件流
    25             inputStream = Resources.getResourceAsStream(reString);
    26             //创建会话工厂,传入mybatis配置文件信息
    27             SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    28             //通过sqlSessionFactory会话工厂 得到 session
    29             SqlSession sqlsession = sqlSessionFactory.openSession();
    30             /**
    31              * 通过sqlsession操作数据库
    32              * 第一个参数:映射文件中的statement的id,等于namespace+“.”+statement的ID
    33              * 第二个参数:指定和映射文件中parameterType参数类型所匹配的参数
    34              * sqlsession.selectOne结果是与映射文件中resultType返回类型所匹配的对象
    35              */
    36             Emp emp=sqlsession.selectOne("test.selectEmpByName", "张");
    37             System.out.println(emp);
    38             //释放资源
    39             sqlsession.close();
    40         } catch (IOException e) {
    41             // TODO Auto-generated catch block
    42             e.printStackTrace();
    43         }
    44 
    45     }
    46 }

    2.2测试结果

    2.3 Log4j基本使用方法

     2.3.1 Log4j由三个重要的组件构成:

          日志信息的优先级:日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;

          日志信息的输出目的地:日志信息的输出目的地指定了日志将打印到控制台还是文件中;

          日志信息的输出格式:而输出格式则控制了日志信息的显 示内容。

     2.3.2  定义配置文件

       其实也可以完全不使用配置文件,而是在代码中配置Log4j环境。但是,使用配置文件将使您的应用程序更加灵活。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值)。下面我们介绍使用Java特性文件做为配置文件的方法:
    1.配置根Logger,其语法为:

    log4j.rootLogger = [ level ] , appenderName, appenderName, …

    其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优 先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指B日志信息输出到哪个地方。您可以同时指定多个输出目的地。

    2.配置日志信息输出目的地Appender,其语法为:

    log4j.appender.appenderName = fully.qualified.name.of.appender.class  
    log4j.appender.appenderName.option1 = value1  
    …  
    log4j.appender.appenderName.option = valueN

      其中,Log4j提供的appender有以下几种:

    org.apache.log4j.ConsoleAppender(控制台),  
    org.apache.log4j.FileAppender(文件),  
    org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),  
    org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),  
    org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

    3.配置日志信息的格式(布局),其语法为:

    log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class  
    log4j.appender.appenderName.layout.option1 = value1  
    …  
    log4j.appender.appenderName.layout.option = valueN

      其中,Log4j提供的layout有以e几种:

    org.apache.log4j.HTMLLayout(以HTML表格形式布局),  
    org.apache.log4j.PatternLayout(可以灵活地指定布局模式),  
    org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),  
    org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

    Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下: %m 输出代码中指定的消息

    %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL  
    %r 输出自应用启动到输出该log信息耗费的毫秒数  
    %c 输出所属的类目,通常就是所在类的全名  
    %t 输出产生该日志事件的线程名  
    %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”  
    %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921  
    %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

    我使用的log4j配置文件:
    1 # Global logging configuration
    2 log4j.rootLogger=DEBUG,stdout
    3 #Console output... 
    4 log4j.appender.stdout=org.apache.log4j.ConsoleAppender    
    5 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    6 log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n %d{yyyy MMM dd HH:mm:ss} -
  • 相关阅读:
    GitHub Pages 绑定二级域名
    JS正则表达式(JavaScript regular expression)
    天猫魔盒远程安装APP
    'msbuild.exe' 不是内部或外部命令,也不是可运行的程序
    Jenkins自动更新与数据备份
    Jenkins插件无法更新、Jenkins插件不能下载问题解决
    安全测试工具wapiti的安装和使用(2)命令及参数解释
    安全测试工具wapiti的安装和使用(1)安装
    Jenkins远程构建和发布,基于IIS服务器(.netCore+vue)(三)
    Jmeter报错:java.net.ConnectException: Connection timed out: connect
  • 原文地址:https://www.cnblogs.com/ysource/p/13098101.html
Copyright © 2020-2023  润新知