广州市做网站的,小鱼儿外贸网站,三维建筑设计软件,定制设计软件1.日志工厂
Mybatis内置的日志工厂提供日志功能#xff0c;具体的日志实现有以下几种工具#xff1a;
SLF4JApache Commons LoggingLog4j 2Log4jJDK logging
具体选择哪个日志实现工具由MyBatis的内置日志工厂确定。它会使用最先找到的#xff08;按上文列举的顺序查找具体的日志实现有以下几种工具
SLF4JApache Commons LoggingLog4j 2Log4jJDK logging
具体选择哪个日志实现工具由MyBatis的内置日志工厂确定。它会使用最先找到的按上文列举的顺序查找。 如果一个都未找到日志功能就会被禁用。
标准日志实现
指定 MyBatis 应该使用哪个日志记录实现。如果此设置不存在则会自动发现日志记录实现。
settings
setting namelogImpl valueSTDOUT_LOGGING/
/settings
测试可以看到控制台有大量的输出 Log4j
Log4j是Apache的一个开源项目通过使用Log4j我们可以控制日志信息输送的目的地控制台文本GUI组件….我们也可以控制每一条日志的输出格式通过定义每一条日志信息的级别我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是这些可以通过一个配置文件来灵活地进行配置而不需要修改应用的代码。
2.log4j的jar包
dependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version
/dependency 3.配置文件编写可以直接用
#将等级为DEBUG的日志信息输出到console和file这两个目的地console和file的定义在下面的代码
log4j.rootLoggerDEBUG,console,file
#控制台输出的相关设置
log4j.appender.console org.apache.log4j.ConsoleAppender
log4j.appender.console.Target System.out
log4j.appender.console.ThresholdDEBUG
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/kuang.log
log4j.appender.file.MaxFileSize10mb
log4j.appender.file.ThresholdDEBUG
log4j.appender.file.layoutorg.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern[%p][%d{yy-MM-dd}][%c]%m%n
#日志输出级别
log4j.logger.org.mybatisDEBUG
log4j.logger.java.sqlDEBUG
log4j.logger.java.sql.StatementDEBUG
log4j.logger.java.sql.ResultSetDEBUG
log4j.logger.java.sql.PreparedStatementDEBUG 4.setting设置日志实现
settingssetting namelogImpl valueLOG4J/
/settings
在程序中使用Log4j进行输出
//注意导包org.apache.log4j.Logger
static Logger logger Logger.getLogger(MyTest.class);
Test
public void selectUser() {logger.info(info进入selectUser方法);logger.debug(debug进入selectUser方法);logger.error(error: 进入selectUser方法);SqlSession session MybatisUtils.getSession();UserMapper mapper session.getMapper(UserMapper.class);ListUser users mapper.selectUser();for (User user: users){System.out.println(user);}session.close();
}
5.分页
limit分页
#语法
SELECT * FROM table LIMIT stratIndexpageSize
SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15
#为了检索从某一个偏移量到记录集的结束所有的记录行可以指定第二个参数为 -1
SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.
#如果只给定一个参数它表示返回最大的记录行数目
SELECT * FROM table LIMIT 5; //检索前 5 个记录行
#换句话说LIMIT n 等价于 LIMIT 0,n。
步骤
修改Mapper文件 select idselectUser parameterTypemap resultTypeuser
select * from user limit #{startIndex},#{pageSize}
/select
Mapper接口参数为map
//选择全部用户实现分页
ListUser selectUser(MapString,Integer map);
在测试类中传入参数测试
推断起始位置 当前页面 - 1 * 页面大小 //分页查询 , 两个参数startIndex , pageSize
Test
public void testSelectUser() {
SqlSession session MybatisUtils.getSession();
UserMapper mapper session.getMapper(UserMapper.class);
int currentPage 1; //第几页
int pageSize 2; //每页显示几个
MapString,Integer map new HashMapString,Integer();
map.put(startIndex,(currentPage-1)*pageSize);
map.put(pageSize,pageSize);
ListUser users mapper.selectUser(map);
for (User user: users){
System.out.println(user);
}
session.close();
} RowBounds分页了解即可
mapper接口
//选择全部用户RowBounds实现分页
ListUser getUserByRowBounds();
mapper文件 select idgetUserByRowBounds resultTypeuserselect * from user
/select
测试类
在这里我们需要使用RowBounds类
Test
public void testUserByRowBounds() {SqlSession session MybatisUtils.getSession();int currentPage 2; //第几页int pageSize 2; //每页显示几个RowBounds rowBounds new RowBounds((currentPage-1)*pageSize,pageSize);//通过session.**方法进行传递rowBounds[此种方式现在已经不推荐使用了]ListUser users session.selectList(com.kuang.mapper.UserMapper.getUserByRowBounds, null, rowBounds);for (User user: users){System.out.println(user);}session.close();
} 6.PageHelper
官方文档MyBatis 分页插件 PageHelper