MyBatis框架筆記1

傳統的JDBC編程步驟:web

一、使用JDBC編程需鏈接數據庫,註冊驅動和數據庫信息spring

二、操做Connection,打開Statement對象數據庫

三、經過Statement執行SQL,返回到ResultSet對象apache

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

五、關閉數據庫相關資源json

 

 

缺點:緩存

一、工做量大mybatis

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

 

 

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

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

二、無需再管理數據庫鏈接

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

四、一個會話中,不要操做多個對象,只要操做Session對象便可

五、關閉資源只需關閉一個Session對象便可

 

 

缺點:

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

二、沒法根據不一樣的條件組裝不一樣的SQL

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

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

五、如有HQL,但性能較差

 

 

 

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

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

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

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

四、具備高度靈活、可優化、易維護等特色

 

 

 

 

缺點:

一、自寫SQL代碼

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

三、手動建立表

 

 

 

 

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

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

 

Log4j簡介

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

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

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

三、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注入方式(反轉控制):

一、構造方法注入

二、setter注入

三、接口注入

 

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分爲下面幾個部分

一、配置數據源

二、配置SqlSessionFactory

三、配置SqlSessionTemplate

四、配置Mapper

五、事務處理

相關文章
相關標籤/搜索