美文网首页personJava
MyBatis | 使用log4j在控制台输出SQL语句

MyBatis | 使用log4j在控制台输出SQL语句

作者: 一颗白菜_ | 来源:发表于2019-11-28 13:55 被阅读0次

    我们在使用MyBatis时候想看看其发送的SQL语句,可以使用log4j-1.2.17.jar和log4j.properties来显示。

    1.下载log4j-1.2.17.jar

    点此进入官网下载,然后选择对应的版本:


    2.在项目中添加jar包

    下载完成后解压该压缩包,得到以下:



    将该jar包加入项目中。

    3.配置log4j.properties文件

    加入如下的配置:

    log4j.rootLogger=DEBUG, Console
    
    #Console
    log4j.appender.Console=org.apache.log4j.ConsoleAppender
    log4j.appender.Console.layout=org.apache.log4j.PatternLayout
    log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
    
    log4j.logger.java.sql.ResultSet=INFO
    log4j.logger.org.apache=INFO
    log4j.logger.java.sql.Connection=DEBUG
    log4j.logger.java.sql.Statement=DEBUG
    log4j.logger.java.sql.PreparedStatement=DEBUG 
    

    4.测试

    EmployeeMapperPlus.xml文件:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.cerr.mybatis.dao.EmployeeMapperPlus">
        <resultMap id="myEmp" type="com.cerr.mybatis.Employee">
            <id column="id" property="id"/>
            <result column="last_name" property="lastName"/>
            <result column="email" property="email"/>
            <result column="gender" property="gender"/>
        </resultMap>
        <select id="getEmpById" resultMap="myEmp">
            select * from tb1_employee where id = #{id}
        </select>
    </mapper>
    

    EmployeeMapperPlus接口:

    package com.cerr.mybatis.dao;
    import com.cerr.mybatis.Employee;
    public interface EmployeeMapperPlus {
        public Employee getEmpById(Integer id);
    }
    

    Employee实体类:

    package com.cerr.mybatis;
    public class Employee {
        private Integer id;
        private String lastName;
        private String email;
        private String gender;
        private Department department;
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getLastName() {
            return lastName;
        }
        public void setLastName(String lastName) {
            this.lastName = lastName;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public String getGender() {
            return gender;
        }
        public void setGender(String gender) {
            this.gender = gender;
        }
        public Department getDepartment() {
            return department;
        }
        public void setDepartment(Department department) {
            this.department = department;
        }
        @Override
        public String toString() {
            return "Employee{" +
                    "id=" + id +
                    ", lastName='" + lastName + '\'' +
                    ", email='" + email + '\'' +
                    ", gender='" + gender + '\'' +
                    ", department=" + department +
                    '}';
        }
        public Employee(Integer id, String lastName, String email, String gender) {
            this.id = id;
            this.lastName = lastName;
            this.email = email;
            this.gender = gender;
        }
        public Employee() {
        }
    }
    

    测试方法:

    package com.cerr.mybatis;
    import com.cerr.mybatis.dao.EmployeeMapper;
    import com.cerr.mybatis.dao.EmployeeMapperAnnotation;
    import com.cerr.mybatis.dao.EmployeeMapperPlus;
    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 org.junit.Test;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.HashMap;
    import java.util.Map;
    public class MyBatisTest {
        //获取SQLSessionFactory
        public SqlSessionFactory getSqlSessionFactory() throws IOException {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            return new SqlSessionFactoryBuilder().build(inputStream);
        }
        @Test
        public void test() throws IOException {
            SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
            SqlSession sqlSession = sqlSessionFactory.openSession();
            try {
                EmployeeMapperPlus mapper = sqlSession.getMapper(EmployeeMapperPlus.class);
                Employee employee = mapper.getEmpById(1);
                System.out.println(employee);
            }finally {
                //关闭
                sqlSession.close();
            }
        }
    }
    

    在控制台中打印了sql信息:


    相关文章

      网友评论

        本文标题:MyBatis | 使用log4j在控制台输出SQL语句

        本文链接:https://www.haomeiwen.com/subject/tqcbwctx.html