MyBatis框架筆記1 原

傳統的JDBC編程步驟:

1、使用JDBC編程需連接數據庫,註冊驅動和數據庫信息

2、操作Connection,打開Statement對象

3、通過Statement執行SQL,返回到ResultSet對象

4、使用ResultSet讀取數據,同事轉換爲具體的POJO對象

5、關閉數據庫相關資源

 

 

缺點:

1、工作量大

2、對JDBC編程可能產生異常進行處理並正確關閉資源

 

 

(全自動——小中型公司適用)Hibernate框架使用:

1、於傳統JDBC編程而言消除了代碼的映射規則,並分離到XML或註解裏去配置

2、無需再管理數據庫連接

3、藉助SessionFactory對象對數據庫的表進行操作——ORM

4、一個會話中,不要操作多個對象,只要操作Session對象即可

5、關閉資源只需關閉一個Session對象即可

 

 

缺點:

1、全表映射可能帶來不便,如更新時需發送所有的字段

2、無法根據不同的條件組裝不同的SQL

3、對多表關聯和複雜SQL查詢支持較差,需自己寫SQL,返回時自己需組裝成具體的POJO

4、不能有效支持存儲過程

5、若有HQL,但性能較差

 

 

 

(半自動——大公司適用)MyBatis框架使用:

1、需手工匹配提供POJO、SQL和映射關係

2、藉助SqlSessionFactory對象對數據庫的表進行操作——ORM

3、接口編程映射器只需一個接口和映射文件便可運行

4、具有高度靈活、可優化、易維護等特點

 

 

 

 

缺點:

1、自寫SQL代碼

2、獲取SqlSessionFactory對象有兩種方法,一種是XML配置獲取(編碼硬代碼、便以後期維護),另一種是代碼獲取

3、手動創建表

 

 

 

 

映射器是有Java接口和XML文件共同組成的(定義參數類型、描述緩存、描述SQL語句、定義查詢結果和POJO的映射關係)

關於SqlSession和Mapper是MyBatis的核心內容和難點

 

Log4j簡介

Log4j有三個主要組件:Loggers(記錄器),Appenders(輸出源)、Layouts(佈局)

1、Loggers組件在系統中分爲五個級別:DEBUG<INFO<WARN<ERROR<FATAL

2、Appenders組件常用的類有:org.apache.log4j.ConsoleAppender(控制檯)、org.apache.log4j.FileAppender(文件)、org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌文件)、org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)、org.apache.log4j.WriterAppender(將日誌信息以流格式發送到任意指定的地方)

3、Layouts組件常用的類有:org.apache.log4j.HTMLLayout(以HTML表格形式佈局)

org.apache.log4j.PatternLayout(可以靈活地指定佈局模式)

org.apache.log4j.SimpleLayout(包含日誌信息的級別和信息字符串)

org.apache.log4j.TTCCLayout(包含日誌產生的時間、線程、類別等信息)

 

常用模板:(log4j.properties)

log4j.rootLogger=DEBUG , stdout

log4j.logger.org.mybatis=DEBUG

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%5p %d %C: %m%n

 

 

 

反射技術和動態代理

一般的動態代理分爲兩種,一種是JDK反射機制提供的代理,另一種是CGLIB代理

 

 

Spring框架已經成爲JAVA世界最爲流行的IOC(反轉控制)和AOP(面向切面編程)

特點:更好的使業務層和模式層以及業務層和操作實體對象層(dao層)分離,“高內聚,低耦合”

 

 

IOC注入方式(反轉控制):

1、構造方法注入

2、setter注入

3、接口注入

 

AOP(面向切面編程):最大的用處是事務的控制

 

 

數據庫

項目      髒讀    不可重讀(同一條記錄)   幻讀

髒讀      √         √                     √

讀寫提交   ×        √                     √

可重複讀   ×        ×                     √

序列化     ×        ×                    ×

 

 

Oracle數據庫只支持讀寫提交和序列化(默認隔離級別爲讀寫提交),MySQL數據庫默認隔離級別爲可重複讀

 

 

避免數據的髒讀、不可重讀、和幻讀最佳選擇是“序列化”即實現Serializable接口

 

 

SpringMVC框架它的核心是DispatcherServlet,Servlet將根據攔截的配置去攔截一些請求

附:Strust2框架它的核心是FilterDispatcher,Servlet將根據攔截的配置去攔截一些請求

@ResponseBody//標註把結果轉換爲JSON數據--需配置

配置:

<bean class=”org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdaper”>

<property name=”messageConverters”>

 <list>

   <ref bean=”mappingJacksonHttpMessageConverter”/>

 </list>

</property>

</bean>

//配置JSON類型

<bean id=“mappingJacksonHttpMessageConverter” class=”org.springframework.http.converter.json.MappingJacksonHttpMessageConverter”>

<property name=”messageConverters”>

 <list>

   <value>application/json;charset=UTF-8</value>

 </list>

</property>

</bean>

 

配置MyBatis-Spring分爲下面幾個部分

1、配置數據源

2、配置SqlSessionFactory

3、配置SqlSessionTemplate

4、配置Mapper

5、事務處理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章