myBatis + log4j簡單實例

代碼段

//根據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>

 

發佈了23 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章