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,
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(); }