本文共 7053 字,大约阅读时间需要 23 分钟。
log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
那么我们就来看看再MyBatis中怎么配置log4j创建数据库
创建Maven项目并配置pom.xml导入jar包4.0.0 com.muan MyBatis练习 1.0-SNAPSHOT junit junit 4.11 org.mybatis mybatis 3.5.1 mysql mysql-connector-java 5.1.47 log4j log4j 1.2.17 src/main/java **/*.properties **/*.xml false src/main/resources **/*.properties **/*.xml false
databases.properies
driver = com.mysql.jdbc.Driverusername = rootpassword = 123456url = jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8
log4j.properties
### Log4j配置 ###### 与Spring结合需要在web.xml中指定此文件位置,并添加监听器 ####定义log4j的输出级别和输出目的地(目的地可以自定义名称,和后面的对应)#[ level ] , appenderName1 , appenderName2log4j.rootLogger=DEBUG,console,file#-----------------------------------##1 定义日志输出目的地为控制台log4j.appender.console = org.apache.log4j.ConsoleAppenderlog4j.appender.console.Target = System.outlog4j.appender.console.Threshold=DEBUG####可以灵活地指定日志输出格式,下面一行是指定具体的格式 ####%c: 输出日志信息所属的类目,通常就是所在类的全名#%m: 输出代码中指定的消息,产生的日志具体信息#%n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行log4j.appender.console.layout = org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern=[%c]-%m%n#-----------------------------------##2 文件大小到达指定尺寸的时候产生一个新的文件log4j.appender.file = org.apache.log4j.RollingFileAppender#日志文件输出目录log4j.appender.file.File=log/tibet.log#定义文件最大大小log4j.appender.file.MaxFileSize=10mb###输出日志信息####最低级别log4j.appender.file.Threshold=ERRORlog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n#-----------------------------------##3 druidlog4j.logger.druid.sql=INFOlog4j.logger.druid.sql.DataSource=infolog4j.logger.druid.sql.Connection=infolog4j.logger.druid.sql.Statement=infolog4j.logger.druid.sql.ResultSet=info#4 mybatis 显示SQL语句部分log4j.logger.org.mybatis=DEBUG#log4j.logger.cn.tibet.cas.dao=DEBUG#log4j.logger.org.mybatis.common.jdbc.SimpleDataSource=DEBUG#log4j.logger.org.mybatis.common.jdbc.ScriptRunner=DEBUG#log4j.logger.org.mybatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG#log4j.logger.java.sql.Connection=DEBUGlog4j.logger.java.sql=DEBUGlog4j.logger.java.sql.Statement=DEBUGlog4j.logger.java.sql.ResultSet=DEBUGlog4j.logger.java.sql.PreparedStatement=DEBUG
编写pojo
package com.muan.pojo;public class User { private int id; private String name; private String pwd; public User() { } public User(int id, String name, String pwd) { this.id = id; this.name = name; this.pwd = pwd; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + ", pwd='" + pwd + '\'' + '}'; }}
编写User接口
package com.muan.dao;import com.muan.pojo.User;import java.util.List;import java.util.Map;public interface UserMapper { //查询全部用户实现分页 ListselectUserByLimit(Map map);}
配置mybatis-config.xml:加上别名配置,log4j配置
编写对应的userMapper.xml配置文件,并编写SQL语句
编写MyBatis工具类
package com.muan.utils;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;import java.io.InputStream;public class MyBatisUtils { //类变量不需要设置默认值; private static SqlSession sqlSession; static { //在maven中,所有的资源文件一般都放在resources目录下,我们可以直接拿到。 try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); sqlSession= sqlSessionFactory.openSession(); } catch (IOException e) { e.printStackTrace(); } } //设置SqlSessionFactory公共的方法 public static SqlSession getSqlSession(){ return sqlSession; }}
测试,模拟分页
import com.muan.dao.UserMapper;import com.muan.pojo.User;import com.muan.utils.MyBatisUtils;import org.apache.ibatis.session.SqlSession;import org.junit.Test;import java.util.HashMap;import java.util.List;public class UserMapperTest { //获取全部用户 @Test public void getAllUserTest(){ //通过工具类获取sqlSessionFactory对象 SqlSession sqlSession = MyBatisUtils.getSqlSession(); //获取mapper队形,参数传入的是接口类的class对象 UserMapper mapper = sqlSession.getMapper(UserMapper.class); int currentPage=1;//当前页面,(可以根据需求改动大小) int pageSize=2;//页面大小,(可以根据需求改动大小) //创建一个map集合 HashMapmap = new HashMap (); map.put("startIndex",(currentPage-1)*pageSize); map.put("pageSize",pageSize); //通过mapper对象调用方法 List users = mapper.selectUserByLimit(map); for (User user : users) { System.out.println(user); } }}
最后我们看一下输出结果,有日志的MyBatis是那么的靓
项目结构
转载地址:http://noiwi.baihongyu.com/