myBatis + log4j简单实例

ε祈祈猫儿з 提交于 2019-12-22 04:48:09

代码段

//根据xml创建SqlSessionFactory对象
String resource = "mybatisConfig.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

//获取SqlSession实例,通过代理实现能直接执行已经映射的sql语句
try (SqlSession session = sqlSessionFactory.openSession()) {
 EmployeeMapper mapper = session.getMapper(EmployeeMapper.class);
    List<Employee> employee = mapper.selectAll();
    System.out.println(employee);
}

过程

加载mybatisConfig.xml全局配置文件

  1. 配置log4j日志记录(<settings>标签)
  2. 配置数据库mysql(<environments>标签)
  3. 加载映射文件mapper(<mappers>标签)
    1. 加载dao层具体sql语句
    2. 返回sql结果,转换成对应实体类

目录结构

pom.xml

  <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.6</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
  </dependencies>

mybatisConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--mybatis的主配置文件-->
<configuration>
    <!-- 一定要配置log4j,否则会用默认的日志管理-->
    <settings>
        <setting name="logImpl" value="LOG4J" />
    </settings>
    <environments default="mysql">
        <environment id="mysql">
            <!-- 配置事务类型-->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据源(连接池)-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <!-- 数据库地址-->
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=utf8"/>
                <!-- 数据库登录账户-->
                <property name="username" value="root"/>
                <!-- 数据库登录密码-->
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 指定映射配置文件的位置-->
    <mappers>
        <!-- 映射配置文件可以是每个独立的.xml配置文件,一定要有相对应的dao层文件(如Interface型EmployeeMapper)-->
        <mapper resource="com/vivo/dao/EmployeeMapper.xml"/>
        <!-- 也可以是没有xml的class映射方法,通过注解的方式写sql语句-->
        <mapper class="com.vivo.dao.EmployeeMapperAnnotation"/>
    </mappers>
</configuration>

log4j.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
        <param name="Encoding" value="UTF-8" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n" />
        </layout>
    </appender>
    <logger name="java.sql">
        <level value="debug" />
    </logger>
    <logger name="org.apache.ibatis">
        <level value="info" />
    </logger>
    <root>
        <level value="debug" />
        <appender-ref ref="STDOUT" />
    </root>
</log4j:configuration>

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!