日誌:log4j
1.導包
2.開啓日誌
在conf.xml中的configuration標籤的子標籤下
有一個settings標籤,setting配置日誌
<settings>
//開啓日誌,並指定使用的具體日誌
<setting name= "logImpl" value="LOG4J"/>
</settings>
如果不開啓日誌,就會按照下面順序去尋找日誌
SLF4J ->Apache Commons Logging ->Log4j 2 ->Log4j ->JDK logging
3.編寫配置日誌輸出文件
log4j.properties
log4j.rootLogger = DEBUG, stdout
控制日誌的兩種方式,stdout說明日誌在那裏顯示(控制檯),DEBUG說明輸出級別
常用的4個級別:debug<info<warn<Error)打印時debug:4種全有;Info;只顯示info及以上信息,以此類推 **建議:開發時設置debug,運行時設置info或以上
log4j.appender.stdout = org.apache.log4j.ConsoleAppender 顯示方式:控制檯普通方式
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout 平鋪方式:可以是平鋪,也可以是列式
log4j.appender.stdout.layout.ConversionPattern = %5p [%t] - %m%n 日誌格式
**照抄就行
a.沒有log4j配置文件
b. 有log4j配置文件
可以通過日誌信息,相應的閱讀mybatisde執行情況(觀察mybatis實際執行的mysql語句以及Sql中的參數和返回結果)
***延時加載:(懶加載)
一對一、一對多、多對一、多對多
一對多:班級-學生
如果不採用延時加載(立即加載),查詢時會將一和多 都查詢,班級、班級中的所有學生
延時加載:如果想要暫時只查詢一的以放,而多的一方 先不查詢 而是在需要的時候再去查詢
一對一:學生-學生證,只需要改association,不在子標籤裏寫,在本身寫,需要再寫一個stucardmapper.xml,sql語句需要變,先查學生,需要的時候再查學生證
<select id="as" resultMap="xxx" parameterType="int">
select * from student
</select>
<resultMap type="student" id="xxx">
<id property="stuNo" column="id" />
<result property="stuName" column="name" />
一對一用association 屬性名stucard,對應類型StudentCard,採用延時加載,在查詢學生時,不立即加載學生證信息 select指定延時加載的sql語句,採用namespace+id找到對應的mapper.xml的配置的sql語句,column指定外鍵
<association property="stucard" javaType="StudentCard" select=” com.mapper.StudentMapper.asx” column = “cardid”>
</association>
</resultMap>
stucardmapper.xml
<mapper namespace="com.mapper.StudentMapper">
<select id="asx" resultType="stuCard" parameterType="int">
select id ,name from stucard where cardid=#{cardId}
</select>
</mapper>
最後 需要在conf.xml裏配置
- 開啓延時加載
<setting name= "lazeLoadingEnable" value="true"/>
2.關閉立即加載
<setting name= "aggressiveLadyLoading" value="false"/>