Mybatis-04 日志、分页
Mybatis-04 日志、分页
日志
1.日志工厂
如果数据库操作出现异常,就需要打印日志来排错。
日志工厂会把日志工作委托实现:
- SLF4J
- Apache Commons Logging
- Log4j 2
- Log4j
- JDK logging
STDOUT_LOGGING标准日志输出
在mybatis-config.xml配置:
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
结果如下:

这地方要注意:
<settings></settings>不是随便一个地方都可以的。在
<configuration>中的东西由固定顺序,顺序为:
2 Log4j
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI)组件
2.1 导包
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
2.2 配置文件
创建配置文件,名称一定要为:log4j.properties
#将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
log4j.rootLogger=DEBUG,console,file
#控制台输出的相关设置
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
#文件输出的相关设置
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File=./log/Test.log
log4j.appender.file.MaxFileSize=10mb
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n
#日志输出级别
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
2.3 在mybatis-config.xml配置
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
2.4测试

2.5简单使用
日志对象,参数是当前类的Class对象
static Logger logger = Logger.getLogger(UserMapperTest.class);
日志级别
logger.info("进入了testLog4j方法");
logger.debug("进入了testLog4j方法");
logger.error("进入了testLog4j方法");
分页
1 使用Limit分页
语法:
select *from user limit startIndex,pageSize;
select *from user limit n; #[0,n)
注意:表的记录索引从0开始
1.1 Dao类
public List<user> getUserListByLimit(Map map);
<select id="getUserListByLimit" parameterType="map" resultType="pojo.user">
select * from mybatistest.user limit #{min},#{max}
</select>
1.2 测试
public class Test {
@org.junit.Test
public void test(){
//第一步:获得SqlSession对象
SqlSession sqlSession = mybatis_util.getSqlSession();
//执行SQL
UserDao mapper = sqlSession.getMapper(UserDao.class);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("min",0);
map.put("max",2);
List<user> userList = mapper.getUserListByLimit(map);
for (user user : userList) {
System.out.println(user);
}
//关闭SqlSession
sqlSession.close();
}
}
上述测试,结果会出现索引 [0,2) 的数据。

2 使用RowBounds分页
不在Sql层面操作,在java代码层面实现分页
2.1 Dao类
public List<user> getUserByRowbounds();
<select id="getUserByRowbounds" resultType="pojo.user">
select *from mybatistest.user
</select>
2.2测试
public class Test {
@org.junit.Test
public void test(){
//第一步:获得SqlSession对象
SqlSession sqlSession = mybatis_util.getSqlSession();
//执行SQL
UserDao mapper = sqlSession.getMapper(UserDao.class);
RowBounds rowBounds = new RowBounds(0,2);
List<user> userList = sqlSession.selectList("com.Dao.UserDao.getUserByRowbounds", null, rowBounds);
for (user user : userList) {
System.out.println(user);
}
//关闭SqlSession
sqlSession.close();
}
}
结果也是会出现索引 [0,2) 的数据。

Mybatis-04 日志、分页的更多相关文章
- Springboot 系列(十二)使用 Mybatis 集成 pagehelper 分页插件和 mapper 插件
前言 在 Springboot 系列文章第十一篇里(使用 Mybatis(自动生成插件) 访问数据库),实验了 Springboot 结合 Mybatis 以及 Mybatis-generator 生 ...
- Mybatis: 插件及分页
Mybatis采用责任链模式,通过动态代理组织多个拦截器(插件),通过这些拦截器可以改变Mybatis的默认行为(诸如SQL重写之类的). Mybatis支持对Executor.StatementHa ...
- Mybatis 的日志管理
Mybatis通过日志工厂提供日志信息,Mybatis内置的日志模版是log4j,commons.log,jdk log也可以通过slf4j简单日志模版结合log4j使用日志信息输出.具体选择哪个日志 ...
- Mybatis Generator实现分页功能
Mybatis Generator实现分页功能 分类: IBATIS2013-07-17 17:03 882人阅读 评论(1) 收藏 举报 mybatisibatisgeneratorpage分页 众 ...
- SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页
SpringBoot+Mybatis配置Pagehelper分页插件实现自动分页 **SpringBoot+Mybatis使用Pagehelper分页插件自动分页,非常好用,不用在自己去计算和组装了. ...
- SpringBoot+Mybatis+PageHelper实现分页
SpringBoot+Mybatis+PageHelper实现分页 mybatis自己没有分页功能,我们可以通过PageHelper工具来实现分页,非常简单方便 第一步:添加依赖 <depend ...
- SpringBoot集成Mybatis并具有分页功能PageHelper
SpringBoot集成Mybatis并具有分页功能PageHelper 环境:IDEA编译工具 第一步:生成测试的数据库表和数据 SET FOREIGN_KEY_CHECKS=0; ...
- MyBatis 显示日志
<!-- 全局配置 --> <settings> <setting name="cacheEnabled" value="false&quo ...
- Mybatis的PageHelper分页插件的PageInfo的属性参数,成员变量的解释,以及页面模板
作者:个人微信公众号:程序猿的月光宝盒 //当前页 private int pageNum; //每页的数量 private int pageSize; //当前页的数量 private int si ...
- 小白的springboot之路(十五)、mybatis的PageHelper分页插件使用
0.前言 用mybatis,那么分页必不可少,基本都是用PageHelper这个分页插件,好用方便: 1.实现 1.1.添加依赖: <!-- 3.集成 mybatis pagehelper--& ...
随机推荐
- Dos命令思维导图
通过思维导图的方式,总结常用Dos命令. 各种思维导图下载地址
- python flask_sqlalchemy 多态 polymorphic 实现单表继承
sqlalchemy 多态 polymorphic 实现单表继承 sqlaclchemy中的单表继续就是以一个模型类为基类,其他模型类继承基类,所有模型类的的数据都存一张表里面(也可以是多张,只不过基 ...
- CCF CSP 202009-1 称检查点查询
202009-1 称检查点查询 题目背景 2020年6月8日,国务院联防联控机制发布<关于加快推进新冠病毒核酸检测的实施意见>,提出对"密切接触者"等八类重点人群&qu ...
- IDLE怎么将主题修改成Darcula样式?
摘要:每个人都有自己心中理想的编辑器主题,我更倾向于Darcula,你们呢? 想必没用过Darcula主题的朋友,会好奇它是何方神圣? 是不是很赏心悦目,代码这冰冷的东西也变得生龙活虎? 我最近在 ...
- HDU 3032 Nim or not Nim?(SG打表找规律)
题意: 给你n堆石子,你每次只能操作一堆石子 1.拿去任意个,最少1个 2.把这一堆分成两堆,没有要求对半分 解析+代码: 1 //解题思路: 2 //对于一个给定的有向无环图,定义关于图的每个顶点的 ...
- Codeforces Round #658 (Div. 2) D. Unmerge (思维,01背包)
题意:有两个数组\(a\)和\(b\),每次比较它们最左端的元素,取小的加入新的数组\(c\),若\(a\)或\(b\)其中一个为空,则将另一个全部加入\(c\),现在给你一个长度为\(2n\)的数组 ...
- Windows环境下Robot Framework 下载及安装流程
1.安装包下载 注意安装包统一64位或32位 1)python-2.7.16.amd64.msi 2)robotframework-3.0.2.tar.gz 3)robotframework-ride ...
- PowerShell随笔5---添加.NET类型
有些情况下,有些脚本命令不能满足我们的需求,而手头却能用C#很方便的实现. 我们就可以把自定义的类型Add到PowerShell中使用,使用方法和PowerShell调用.NET类库方法是一样的. 以 ...
- 3.Work Queues
标题 : 3.Work Queues 目录 : RabbitMQ 序号 : 3 var channel1 = _connection.CreateModel(); channel1.BasicQos( ...
- leetcode 4 寻找两个有序数组的中位数 二分法&INT_MAX
小知识 INT_MIN在标准头文件limits.h中定义. #define INT_MAX 2147483647#define INT_MIN (-INT_MAX - 1) 题解思路 其实是类似的二分 ...
