1. 程式人生 > 實用技巧 >學習Mybatis中的log4j和延遲載入

學習Mybatis中的log4j和延遲載入

一、下載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"/>

  實現延遲載入。