學習Mybatis中的log4j和延遲載入
阿新 • • 發佈:2020-11-12
一、下載log4j.jar匯入專案。
在conf.xml中開啟日誌:
<settings> <setting name="logImpl" value="LOG4J"/> </settings>
建立log4j.properties檔案
log4j.rootLogger=DEBUG, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
執行測試類:
二、延遲載入
在personMapper.xml中新增:
<!-- 使用resultMap關聯查詢,延遲載入 --> <select id="queryPerson_cardId4" resultMap="person_card_map2_lazyload"> select * from person2 </select> <resultMap type="person" id="person_card_map2_lazyload"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="age" column="age"/> <result property="persex" column="sex"/> <!-- 一對一用association,採用延遲載入修改以下 --> <association property="card" javaType="PersonCard" select="org.ruangong.mapper.personcardMapper.querycardById" column="cardId"> <!-- <id property="cardId" column="cardId"/> <result property="cardInfo" column="cardInfo"/> --> </association> </resultMap>
並在原mapper包中建立personcardMapper.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="org.ruangong.mapper.personcardMapper"> <!-- 使用resultMap關聯查詢,延遲載入 --> <select id="querycardById" parameterType="int" resultType="PersonCard"> select * from person_card where cardId = #{cardId} </select> </mapper>
在conf.xml的mappers新增對映:
<mapper resource="org/ruangong/mapper/personcardMapper.xml"/>
在有開啟log4j日誌的setting標籤中加入:
<!-- 開啟延遲載入 --> <setting name="lazyLoadingEnabled" value="true"/> <!-- 關閉立即載入 --> <setting name="aggressiveLazyLoading" value="false"/>
實現延遲載入。