Mybatis03


title: Mybatis learning 03
DATE: 2020-01-19 13:03:20
Tags:


Mybatis to learn the next day, the contents of the log and paging.

1. Log

1, log settings

In mybatis core configuration file settings, Label use To configure.

Mybatis built a number of logs, are:

  • SLF4J
  • LOG4J (common)
  • LOG4J2
  • JDK_LOGGING
  • COMMONS_LOGGING
  • STDOUT_LOGGING (commonly used standard log)
  • NO_LOGGING

E.g. STDOUT_LOGGING arranged in the configuration file must be added:

<!--    mybatis的设置-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

Results are as follows:

2, Laog4j

log4j explanation:

  • Apache Log4j is an open source project, through the use of Log4j, we can control the destination log information delivery is the console, files, GUI components, or even socket servers, NT event logger, UNIX Syslog daemons.
  • We can also control the output format of each log.
  • Can be flexibly configured via a configuration file

start using:

  • Maven add dependencies

    <!-- https://mvnrepository.com/artifact/log4j/log4j -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>
  • mybatis set log4j to log

    <settings>
            <setting name="logImpl" value="LOG4J"/>
        </settings>
  • Write log4j configuration file (on resoures and is called log4j.properties)

    ### set log levels ###
    log4j.rootLogger = INFO , console , debug , error 
    
    ### console ###
    log4j.appender.console = org.apache.log4j.ConsoleAppender 
    log4j.appender.console.Target = System.out 
    log4j.appender.console.layout = org.apache.log4j.PatternLayout 
    log4j.appender.console.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [%p]-[%c] %m%n 
    
    ### log file ###
    log4j.appender.debug = org.apache.log4j.DailyRollingFileAppender 
    log4j.appender.debug.File = ./log/log4j.log
    log4j.appender.debug.Append = true 
    log4j.appender.debug.Threshold = INFO 
    log4j.appender.debug.layout = org.apache.log4j.PatternLayout 
    log4j.appender.debug.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [%p]-[%c] %m%n 
    
    ### exception ###
    log4j.appender.error = org.apache.log4j.DailyRollingFileAppender 
    log4j.appender.error.File = ./log/log4j.log
    log4j.appender.error.Append = true 
    log4j.appender.error.Threshold = ERROR 
    log4j.appender.error.layout = org.apache.log4j.PatternLayout 
    log4j.appender.error.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [%p]-[%c] %m%n 
    
    
    ###需要声明,然后下方才可以使druid sql输出,否则会抛出log4j.error.key not found
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
    log4j.appender.stdout.Target=System.out 
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
    log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %l %c%n%p: %m%n 
    
    ### druid sql ###
    log4j.logger.druid.sql=warn,stdout 
    log4j.logger.druid.sql.DataSource=warn,stdout 
    log4j.logger.druid.sql.Connection=warn,stdout 
    log4j.logger.druid.sql.Statement=warn,stdout 
    log4j.logger.druid.sql.ResultSet=warn,stdout 
  • java code used log4j

        @Test
        public void TestLog4j(){
            Logger logger = Logger.getLogger(UserMapperTest.class);
            logger.info("info:进入TestLog4j");
            logger.debug("debug:进入TestLog4j");
            logger.error("error:进入TestLog4j");
        }

2, Page

1, limit pagination (SQL statement)

  • interface

     //通过分页获取用户信息
        List<User> getUserByLimit(Map<String,Integer> map);
  • xml statement

    <!--    获取分页-->
        <select id="getUserByLimit" parameterType="map" resultType="User">
            select * from user limit #{startIndex},#{pageSize}
        </select>
  • test

      @Test
        public void getUserByLimit(){
            SqlSession sqlSession = MybatisUtils.getSqlSession();
            UserMapper mapper = sqlSession.getMapper(UserMapper.class);
            HashMap<String, Integer> map = new HashMap<String, Integer>();
            map.put("startIndex",0);
            map.put("pageSize",3);
            List<User> userByLimit = mapper.getUserByLimit(map);
            for (User user : userByLimit) {
                System.out.println(user);
            }
            sqlSession.close();
        }

2, RowBounds implement (JAVA Code level)

  • interface

    //rowbounds实现分页
        List<User> getUserByRowBounds();
  • xml file

    <!--    rowbounds实现分页-->
        <select id="getUserByRowBounds" resultType="User">
            select * from user
        </select>
  • Test code

    @Test
        public void getUserByRowBounds(){
            SqlSession sqlSession = MybatisUtils.getSqlSession();
            RowBounds rowBounds = new RowBounds(1, 3);
            List<User> userList = sqlSession.selectList("com.neversettle.dao.UserMapper.getUserByRowBounds", null, rowBounds);
            for (User user : userList) {
                System.out.println(user);
            }
            sqlSession.close();
        }

Guess you like

Origin www.cnblogs.com/wuren-best/p/12441540.html