MyBatis整合Log4j

女爷i 2022-12-01 14:02 176阅读 0赞

今天就来说一下我们如何在窗口中看到我们执行了sql语句,使用Log4j工具

第一步:首先我们创建一个Maven项目:

导入必须的依赖:

  1. <dependencies>
  2. <dependency>
  3. <groupId>mysql</groupId>
  4. <artifactId>mysql-connector-java</artifactId>
  5. <version>8.0.20</version>
  6. </dependency>
  7. <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
  8. <dependency>
  9. <groupId>org.mybatis</groupId>
  10. <artifactId>mybatis</artifactId>
  11. <version>3.5.4</version>
  12. </dependency>
  13. <dependency>
  14. <!-- 单元测试 -->
  15. <groupId>junit</groupId>
  16. <artifactId>junit</artifactId>
  17. <version>4.11</version>
  18. <scope>test</scope>
  19. </dependency>
  20. <dependency>
  21. <groupId>log4j</groupId>
  22. <artifactId>log4j</artifactId>
  23. <version>1.2.17</version>
  24. </dependency>
  25. //如果是web项目,要引入这个依赖
  26. <dependency>
  27. <groupId>org.apache.logging.log4j</groupId>
  28. <artifactId>log4j-web</artifactId>
  29. <version>2.13.3</version>
  30. </dependency>
  31. </dependencis>

第二步:在resource文件下创建log4j配置文件和mybatis配置文件:

20200827111558824.png

log4j.properties:

  1. log4j.rootLogger=DEBUG,CONSOLE,file
  2. #log4j.rootLogger=ERROR,ROLLING_FILE
  3. log4j.logger.cn.siliang.dao=debug
  4. log4j.logger.com.ibatis=debug
  5. log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
  6. log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
  7. log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
  8. log4j.logger.java.sql.Connection=debug
  9. log4j.logger.java.sql.Statement=debug
  10. log4j.logger.java.sql.PreparedStatement=debug
  11. log4j.logger.java.sql.ResultSet=debug
  12. log4j.logger.org.tuckey.web.filters.urlrewrite.UrlRewriteFilter=debug
  13. ######################################################################################
  14. # Console Appender \u65e5\u5fd7\u5728\u63a7\u5236\u8f93\u51fa\u914d\u7f6e
  15. ######################################################################################
  16. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
  17. log4j.appender.Threshold=error
  18. log4j.appender.CONSOLE.Target=System.out
  19. log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
  20. log4j.appender.CONSOLE.layout.ConversionPattern= [%p] %d %c - %m%n
  21. ######################################################################################
  22. # DailyRolling File \u6bcf\u5929\u4ea7\u751f\u4e00\u4e2a\u65e5\u5fd7\u6587\u4ef6\uff0c\u6587\u4ef6\u540d\u683c\u5f0f:log2009-09-11
  23. ######################################################################################
  24. log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
  25. log4j.appender.file.DatePattern=yyyy-MM-dd
  26. log4j.appender.file.File=log.log
  27. log4j.appender.file.Append=true
  28. log4j.appender.file.Threshold=error
  29. log4j.appender.file.layout=org.apache.log4j.PatternLayout
  30. log4j.appender.file.layout.ConversionPattern=%d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L)%m%n
  31. log4j.logger.com.opensymphony.xwork2=error

mybatis-config.xml文件配置:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <settings>
  7. <setting name="logImpl" value="LOG4J"/>
  8. <setting name="autoMappingBehavior" value="FULL"/>
  9. </settings>
  10. <environments default="development">
  11. <environment id="development">
  12. <transactionManager type="JDBC"/>
  13. <dataSource type="POOLED">
  14. <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
  15. <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&characterEncoding=UTF-8&serverTimezone=UTC"/>
  16. <property name="username" value="root"/>
  17. <property name="password" value="123"/>
  18. </dataSource>
  19. </environment>
  20. </environments>
  21. <mappers>
  22. <mapper resource="dao/UserMapper.xml"/>
  23. </mappers>
  24. </configuration>

第三步:我们开始写实体 和 接口以及单元测试类

User实体:

  1. package pojo;
  2. import java.sql.DatabaseMetaData;
  3. import java.sql.Date;
  4. public class User {
  5. private String id; //id
  6. private String name; //姓名
  7. private int age; //密码
  8. private String email;
  9. private Date create_time;
  10. private Date update_time;
  11. private int version;
  12. public String getId() {
  13. return id;
  14. }
  15. public void setId(String id) {
  16. this.id = id;
  17. }
  18. public String getName() {
  19. return name;
  20. }
  21. public void setName(String name) {
  22. this.name = name;
  23. }
  24. public int getAge() {
  25. return age;
  26. }
  27. public void setAge(int age) {
  28. this.age = age;
  29. }
  30. public String getEmail() {
  31. return email;
  32. }
  33. public void setEmail(String email) {
  34. this.email = email;
  35. }
  36. public Date getCreate_time() {
  37. return create_time;
  38. }
  39. public void setCreate_time(Date create_time) {
  40. this.create_time = create_time;
  41. }
  42. public Date getUpdate_time() {
  43. return update_time;
  44. }
  45. public void setUpdate_time(Date update_time) {
  46. this.update_time = update_time;
  47. }
  48. public int getVersion() {
  49. return version;
  50. }
  51. public void setVersion(int version) {
  52. this.version = version;
  53. }
  54. @Override
  55. public String toString() {
  56. return "User{" +
  57. "id='" + id + '\'' +
  58. ", name='" + name + '\'' +
  59. ", age=" + age +
  60. ", email='" + email + '\'' +
  61. ", create_time=" + create_time +
  62. ", update_time=" + update_time +
  63. ", version=" + version +
  64. '}';
  65. }
  66. }

UserMapper接口:

  1. package dao;
  2. import pojo.User;
  3. import java.util.List;
  4. public interface UserMapper {
  5. List<User> selectUser();
  6. }

UserMapper.xml文件:

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <mapper namespace="dao.UserMapper">
  4. <select id="selectUser" resultType="pojo.User">
  5. select * from user
  6. </select>
  7. </mapper>

添加一个myBatis的工具类:

  1. public class MybatisUtils {
  2. private static SqlSessionFactory sqlSessionFactory;
  3. static {
  4. try {
  5. //使用mybatis获取sqlSessionFactory对象
  6. String resource = "mybatis-config.xml";
  7. InputStream inputStream = Resources.getResourceAsStream(resource);
  8. sqlSessionFactory =
  9. new SqlSessionFactoryBuilder().build(inputStream);
  10. } catch (IOException e) {
  11. e.printStackTrace();
  12. }
  13. }
  14. //既然有了SqlSessionFactory,顾名思义,我们就可以从中获得SqlSession的失礼了
  15. //SqlSession完全包含了面向数据库执行SQL命令所需的所有方法
  16. public static SqlSession getSqlSession() {
  17. return sqlSessionFactory.openSession();
  18. }
  19. }

单元测试:

  1. public class UserTest {
  2. @Test
  3. public void test1(){
  4. // 第一步:获得sqlsession对象
  5. SqlSession sqlSession= MybatisUtils.getSqlSession();
  6. // 方式一: 执行 sql
  7. UserMapper userDao=sqlSession.getMapper(UserMapper.class);
  8. List<User> userList=userDao.selectUser();
  9. for(User user:userList){
  10. System.out.println(user);
  11. }
  12. //关闭sqlSession
  13. sqlSession.close();
  14. }
  15. }

最终大功告成! 运行结束之后我们可以看看日志:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMwNjMxMDYz_size_16_color_FFFFFF_t_70

发表评论

表情:
评论列表 (有 0 条评论,176人围观)

还没有评论,来说两句吧...

相关阅读

    相关 springboot整合log4j2

    相比与其他的日志系统,log4j2丢数据这种情况少;disruptor技术,在多线程环境下,性能高于logback等10倍以上;利用jdk1.5并发的特性,减少了死锁的发生;

    相关 MyBatis整合Log4j

    今天就来说一下我们如何在窗口中看到我们执行了sql语句,使用Log4j工具 第一步:首先我们创建一个Maven项目: 导入必须的依赖: <dependenci