Java Web程序設計(慕課版 第3版)-基于SSM 課件 第8-13章 程序日志組件 - 程序源論壇_第1頁
Java Web程序設計(慕課版 第3版)-基于SSM 課件 第8-13章 程序日志組件 - 程序源論壇_第2頁
Java Web程序設計(慕課版 第3版)-基于SSM 課件 第8-13章 程序日志組件 - 程序源論壇_第3頁
Java Web程序設計(慕課版 第3版)-基于SSM 課件 第8-13章 程序日志組件 - 程序源論壇_第4頁
Java Web程序設計(慕課版 第3版)-基于SSM 課件 第8-13章 程序日志組件 - 程序源論壇_第5頁
已閱讀5頁,還剩168頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第8章程序日志組件01 日志組件簡介02Loggers03Appenders04Layouts1 日志組件簡介什么是Log4j?Log4j是Apache的開源項目,通過使用Log4j,可以控制每一條日志的輸出格式、級別,能夠更加細致地控制日志的生成過程。LoggerAppenderLayoutLog4jLog4j的3大組件2 LoggersLoggers概述Logger是Log4j的日志記錄器,它是Log4j的核心組件。日志級別消息類型描述DEBUGObject輸出調試級別的日志信息,它是所有日志級別中最低的INFOObject輸出消息日志,它高于DEBUG級別日志WARNObject輸出警告級別的日志信息,它高于INFO日志級別ERRORObject輸出錯誤級別的日志信息,它高于WARN日志級別FATALObject輸出致命錯誤級別的日志信息,它是最高的日志級別5種級別的日志信息日志輸出級別方法舉例DEBUElogger.debug(Objectmessage)logger.debug("調試日志");INFO(Objectmessage)logger.info("消息日志")WARNlogger.warn(Objectmessage)logger.warn("警告日志")ERRORlogger.error(Objectmessage)logger.error("數據庫連接失敗")FATALlogger.fatal(Objectmessage)logger.fatal("內存不足")在程序中可以使用Logger類的不同的方法來輸出各種級別的日志信息,Log4j會根據配置的當前日志級別決定輸出那些日志。對應各種級別日志的輸出方法如下。配置日志在配置文件中配置Logger日志時,可以定義日志的級別、輸出目標等。log4j.[loggerName]=[loggerLevel],appenderName,……語法log4j.logger.onelogger=debug,file示例日志的繼承log4j.rootLogger=WARN,consoleLogger日志的最頂層是rootLogger日志,它類似于Java的Object類,所有日志都繼承了rootLogger日志的定義,log4j.logger.onelogger.newlogger=,file除了配置rootLogger日志定義所有日志都會繼承的配置外,在配置日志時還可以指定的繼承某個以存在的日志。例如,繼承以存在的onelogger日志去定義一個新的newlogger日志,1

AppendersAppenders接口在配置文件中定義Logger日志時,需要指定日志的輸出目標即實現Appenders接口的對象。Appender接口的實現類描述org.apache.log4j.ConsoleAppender輸出日志到控制臺org.apache.log4j.FileAppender輸出日志到文件org.apache.log4j.DailyRollingFileAppender每天只生成一個對應的日志文件org.apache.log4j.RollingFileAppender當文件大小超出限制時,從新生成新的日志文件,可以設置日志文件的備份數量org.apache.log4j.WriterAppender以流的形式輸出日志信息到任意目的.SMTPAppender當特定的日志事件發生時,一般是指發生錯誤或者重大錯誤時,發送郵件.SocketAppender給遠程日志服務器的網絡套接字節點發送日志事件LoggingEvent對象.SocketHubAppender給遠程日志服務器群組網絡套接字節點,發送日志事件LoggingEvent對象.SyslogAppender給遠程異步日志記錄的后臺程序(daemon)發送消息。.TelnetAppender一個專用于向只讀網絡套接字發送消息的log4jappender。4 LayoutsLayouts簡介Appender必須使用一個與之相關聯的Layout附加在Appender上,它可以根據用戶的個人習慣格式化日志的輸出格式,例如文本文件、HTML文件、郵件、網絡套接字等。Layout的子類描述org.apache.log4j.HTMLLayout將日志以HTML格式布局輸出org.apache.log4j.PatternLayout日志將根據指定的轉換模式格式化并輸出日志,如果沒有指定任何轉換模式,將采用默認的轉換模式org.apache.log4j.SimpleLayout將日志以一種非常簡單的方式格式化日志輸出,它先輸出日志級別,然后跟著一個破折號“-“,最后才是日志消息org.apache.log4j.TTCCLayout這種布局格式包含日志的線程、級別、日志名稱跟著一個破折號“-“,然后才是日志消息PatternLayout布局的轉義字符Appender必須使用一個與之相關聯的Layout附加在Appender上,它可以根據用戶的個人習慣格式化日志的輸出格式,例如文本文件、HTML文件、郵件、網絡套接字等。轉換字符描述%c日志名稱%C日志操作所在的類的名稱(不包含擴展名稱)%d產生日志的時間和日期%F日志操作所在的類的源文件名稱(既.java文件)%l日志操作代碼所在的類的名稱以“.”字符連接所在的方法,其后的()中包含日志操作代碼所在的源文件名稱以“:”連接所在行號。例如Test.main(Test.java:19)%L只包含日志操作代碼所在源代碼的行號。%m除了輸出日志信息之外,不包含任何信息。%M只輸出日志操作代碼所在源文件中的方法名。例如main%n日志信息中的換行符%p以大寫格式輸出日志的級別%r產生日志所耗費的時間(以毫秒為單位)%t輸出日志信息的線程名稱%%輸出%符號小結這一章我們學習了Java中最常用的Log4j日志組件,這個組件可以將后臺的日志按照我們制定的格式展示或者保存,上機指導使用Log4j將控制臺異常日志保存到文件中。使用如下配置:log4j.rootLogger=DEBUG,Rlog4j.appender.R=org.apache.log4j.FileAppenderlog4j.appender.R.file=console.loglog4j.appender.R.Append=true??log4j.appender.R.layout.ConversionPattern=%n%d:%m%nlog4j.appender.R.layout=org.apache.log4j.PatternLayout第9章SpringMVC框架01MVC設計模式02SpringMVC概述03搭建SpringMVC環境04處理器映射器和適配器05前端控制器和視圖解析器06

請求映射和參數綁定07攔截器08

SpringMVC其它操作1 MVC設計模式MVC模式MVC(Model-View-Controller模型-視圖-控制器)是一個存在于服務器表達層的模型。在MVC經典架構中,強制性地把應用程序的輸入、處理和輸出分開,將程序分成3個核心模塊——模型、視圖、控制器。2 SpringMVC概述SpringMVC框架概述SpringMVC屬于SpringFrameWork的后續產品,已經融合在SpringWebFlow里面。Spring框架提供了構建Web應用程序的全功能MVC模塊。同SpringMVC框架相同作用的控制層框架還有一個叫struts2的框架,不過隨著Spring的版本更新,目前SpringMVC框架無論從安全還是性能上來說都遠高于struts2框架。Struts2的結構體系SpringMVC框架的結構體系圖3

搭建環境添加SpringMVC依賴jar包SpringMVC核心配置文件1.前端控制器2.視圖解析器3.注解映射器4.注解適配器……4

處理器映射器和適配器映射器、適配器配置映射器、適配器有兩種方式其一: <!--注解映射器--><beanclass="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <!--注解適配器--><beanclass="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>其二:<mvc:annotation-driven/>5

前端控制器和視圖解析器前端控制器<!--控制器映射--><servlet-mapping><servlet-name>SpringMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping>這段實例中的配置是將所有請求都交給SpringMVC來控制<servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/SpringMVC.xml</param-value></init-param></servlet>視圖解析器試圖名AbstractCachingViewResolverUrlBasedViewResolverInternalResourceViewResolverXmlViewResolverBeanNameViewResolver視圖解析器6

請求參數與參數綁定Controller與RequestMapping@Controllerpublic

classUsersController{ @RequestMapping("/getAllUser")

publicModelAndViewgetAllUser()throwsException{ }

}參數綁定過程名稱作用HttpServletRequest通過request對象獲取請求信息HttpServletResponse通過response對象處理相應信息HttpSession通過session對象得到session中存放得對象Model/ModelMapModel是一個接口,ModelMap是一個接口實現,她得作用是將model數據填充到request域。SpringMVC數據綁定默認支持得類型簡單類型參數綁定當我們通過帶參數的url來發送請求的時候,我們只需要在控制器中的方法上設定好參數名稱與請求鏈接中的參數名稱一樣的參數,SpringMVC就可以自動把參數值綁定到我們的方法參數中。包裝類型參數綁定集合類型參數綁定—數組下面在介紹一種情況,我們在系統中經常會用到復選框,那么就要求我們后臺代碼可以處理批量的數據。集合類型參數綁定—List集合要想使用集合來綁定參數,我們要滿足幾個條件:1.在表單中,每一行元素的name屬性值應該是“集合名[下標].屬性”的形式。2.要提供一個List集合的包裝類。3.在業務方法中循環遍歷我們創建的List讀取數據。集合類型參數綁定—Map集合Map集合同List集合有些類似,同樣需要3個條件,只不過我們需要把第2個條件替換成Map的包裝類。7

攔截器HandlerInterceptor接口方法名作用preHandle在執行Handler方法之前執行,返回值類型為boolean類型。postHandle在執行Handler之后,返回ModelAndView之前執行。afterCompletion在執行完Handler之后執行。實現HandlerInterceptor接口必須實現該接口下的三個方法WebRequestInterceptor接口WebRequestInterceptor和HandlerInterceptor一樣,也有三個方法,preHandle,postHandle,afterCompletion,不同的是preHandle沒有返回值,而且WebRequestInterceptor的三個方法的參數都是WebRequest,WebRequest和HttpServletRequest用法基本一樣。常量名真實值作用SCOPE_REQUEST0代表只有在request中可以訪問SCOPE_SESSION1如果環境允許它代表一個局部的隔離的session,否則就代表普通的session,并且該session范圍內而可以訪問SCOPE_GLOBAL_SESSION2如果環境允許,它代表一個全局共享的session,否則就代表普通的session,并且在該session范圍內可以訪問8 SpringMVC的其他操作利用SpringMVC上傳文件使用SpringMVC框架完成上傳文件與JSP/Servlet一樣,我們都需要在JSP頁面使用file元素,還獲取要上傳的文件。不同點在于我們需要在SpringMVC的配置文件中配置一個多文件類型的解析器“CommonsMultipartResolver”。另外還需要注意,要完成文件上傳功能,別忘了要導入一下兩個jar包。靜態資源訪問問題<mvc:resourceslocation="/WEB-INF/jsp"mapping="/jsp/**"/><mvc:resourceslocation="/WEB-INF/js"mapping="/js/**"/><mvc:resourceslocation="/WEB-INF/css"mapping="/css/**"/><mvc:resourceslocation="/WEB-INF/img"mapping="/img/**"/>小結本章向讀者介紹了一種非常流行的MVC模型解決方案——SpringMVC技術,其中包括MVC設計模式、SpringMVC框架的體系、SpringMVC配置文件與攔截器等組件。對于初學者來說,只有切實掌握SpringMVC框架的體系,才能靈活地應用SpringMVC框架進行開發。上機指導應用SpringMVC實現一個簡單計算器。第10章Mybatis技術01 初始MyBatis02搭建MyBatis開發環境03MyBatis配置文件詳解04MyBatis高級映射1 初識MyBatisMyBatis介紹MyBatis是一款優秀的持久層框架,它支持定制化SQL、存儲過程以及高級映射。MyBatis避免了幾乎所有的JDBC代碼和手動設置參數以及獲取結果集。MyBatis可以使用簡單的XML或注解來配置和映射原生信息,將接口和Java的POJOs(PlainOldJavaObjects,普通的Java對象)映射成數據庫中的記錄。MyBatis運行流程2 MyBatis開發環境數據庫準備我們需要填寫一個“連接名”信息和“密碼”,在這里我設定連接名為“localhost”,本地連接的意思,密碼設置為“root”。搭建MyBatis環境創建完工程以后,要想使用MyBatis框架,就要為其引入依賴jar包。我們想下載MyBatis的依賴jar包可以去:/mybatis/mybatis-3/releases。編寫日志輸出環境配置文件編寫數據庫連接池SQL映射文件現在我們來寫最后一個配置文件Mapper映射文件。我們需要把所有Mapper配置文件都存放到一個包下,我們為包起名教”com.mr.mapper”,然后創建一個名為”**-Mapper.xml”的文件。數據庫交互類與測試類名稱作用實體類數據公共類分裝對象測試類輸出結果顯示接下來編寫Java類。需要編寫三個類,分別是實體類、數據庫交互類以及測試類。模糊查詢想要完成模糊查詢功能,首先我們要在SQL映射文件(*-Mapper.xml),新增模糊查詢的select標簽。其次,要在測試類創建測試方法,并在聲明方法的上一行使用@test測試注解。新增SQL映射文件測試類修改案例SQL映射文件測試類刪除案例SQL映射文件測試類3 MyBatis配置文件詳解SqlMapConfig配置文件配置名稱含義簡介configuration包括所有配置標簽整個配置文件的頂級標簽properties屬性可以引入外部配置的屬性,也可以自己配置。該配置標簽所在的同一配置文件中的其他配置均可引用此配置中的屬性setting全局配置參數MyBatis極為重要的標簽,它可以改變一些運行時行為的信息,例如設置緩存、延遲加載、錯誤處理等。并且還可以設置最大并發請求、最大并發事務以及是否啟用命名空間等typeAliases類型別名設置別名來代替Java的全類名()變為int。typeHandlers類型處理器將SQL中返回的數據庫類型轉換為相應的Java類型處理器配置SqlMapConfig配置文件配置名稱含義簡介environments環境集合屬性配置數據庫信息的集合,它下面可以有很多個environment,一個environment代表一個數據庫配置。environment環境子屬性數據庫環境配置的詳細配置transactionManager事務管理指定MyBatis的事務管理器dataSource數據源通過這個標簽,可以配置鏈接數據庫的一些信息:鏈接地址,驅動,用戶名,密碼等。mappers映射器配置SQL映射文件的位置,告訴MyBatis去什么路徑下找mapper映射文件Mapper映射文件標簽名稱標簽作用insert映射插入語句update映射更新語句select映射查詢語句delete映射刪除語句resultMap是最復雜也是最強大的元素,用來描述如何從數據庫結果集中來加載對象。sql可被其他語句引用的可重用語句塊。cache給定命名空間緩存配置cache-ref起亞命名空間緩存配置的引用parameterMap參數映射,該配置現在已經廢棄mapper輸入映射在增、刪、改、查配置標簽中,有許多SQL配置是需要傳遞參數的。在MyBatis的SQL映射配置文件中,輸入參數屬性配置在parameterType中。對于parameterType屬性,可以配置的基本數據類型有int、double、float、short、long、byte、char、boolean,基本數據包裝類有Byte、Short、Integer、Long、Float、Double、Boolean、Character,還有Java復雜數據類型JavaBean或其他自定義的封裝類。mapper輸出映射Mapper的輸出映射有兩種配置,分別是resultType和resultMap:1.resultType除了像parameter一樣支持基本數據類型、包裝類型之外,也支持自定義包裝類。關于自定義包裝類,如果從數據庫查詢出來的列名與包裝類中的屬性名全都不一致,則不會創建包裝類對象,如果數據庫查詢出來的列名與包裝類中的屬性名至少有一個一致,那么就會創建包裝類對象。2.resultMap

元素是MyBatis中最重要最強大的元素。它可以讓你從90%的JDBC

ResultSets

數據提取代碼中解放出來,并在一些情形下允許你做一些JDBC不支持的事情。實際上,在對復雜語句進行聯合映射的時候,它很可能可以代替數千行的同等功能的代碼。動態SQL示名稱作用if條件判斷choose、when類似switchtrim制定where元素的功能foreach遍歷集合在MyBatis3以后保留的元素只有4個:if、choose,when,otherwise、trim、foreach4 MyBatis高級映射一對一屬性名稱作用property映射數據庫的字段或屬性。column數據庫的列明或者列別名javaType完整的Java類名,如果時映射到JavaBean,MyBatis會自動映射,如果映射到HashMap,那你應該明確指定javaType來確保所需行為。jdbcType這個屬性只有在增、刪、改的時候允許空的列有用,在允許為空的字段需要指定這個類型。typeHandler類型處理器,使用這個屬性可以重寫默認處理器。它的值可以時一個typeHandler實現的完整類名。select通過id引用另一個映射語句。從指定的列屬性中返回值,作為參數設置給目標select語句。表和表之間的關系時一對一的時候,我們使用”association”標簽。一對多完成一對多映射需要一下幾個步驟:1.仔細分析表,確定好哪個表是一,哪個表是多。2.需要在單一的一方實體類上添加多的一方集合并聲稱get、set。3.寫mapper映射文件。4.最終是為了得到Users對象,所以我們需要先得到Role對象,然后在Role的返回集寫的是Users的Map集合。5.定義Map集合,然后在關聯collection集合,在把整個mapper.,xml映射文件路徑配置給sqlMapConfig.xml全局配置文件。創建測試類,輸出查詢結果。延遲加載在MyBatis中,延遲加載默認是關閉的,所以說我們要想使用延遲加載需要手動打開,還記得在本章剛開始的時候講sqlMapConfig全局配置文件的時候我介紹了一個標簽叫setting,它就是延遲加載的開關小結本章主要對MyBatis的基礎知識進行了詳細講解,持久化操作是開發應用系統基礎,熟練掌握MyBatis的基礎知識,能夠為快速開發應用程序打下堅實的基礎。本章為大家介紹了搭建環境、配置文件、多關系映射、延遲加載,這些都是經常應用的技術,所以要求大家必須全部掌握。上機指導在博客、論壇、留言等網站中都離不開用戶注冊模塊,其應用十分廣泛。從程序方面來考慮,用戶注冊實質就是對用戶信息進行持久化的過程。對于用戶詳細信息可以將其封裝為一個實體對象,而持久化過程使用MyBatis框架進行實現。第11章Spring框架01Spring概述02SpringIoC03AOP概述04Spring的切入點05Aspect對AOP的支持06Spring持久化1

Spring概述Spring組成Spring的配置結構使用BeanFactory管理BeanApllicationContext接口1.ClassPathXmlApplicationContext類從當前類路徑中檢索配置文件并加載來創建容器的實例,其語法格式如下:ApplicationContextcontext=newClassPathXmlApplicationContext(StringconfigLocation);configLocation參數指定Spring配置文件的名稱和位置。2.FileSystemXmlApplicationContext類該類不從類路徑中獲取配置文件,而是通過參數指定配置文件的位置。它可以獲取類路徑之外的資源,其語法格式如下:ApplicationContextcontext=newFileSystemXmlApplicationContext(StringconfigLocation);3.WebApplicationContext類WebApplicationContext是Spring的Web應用容器,在Servlet中使用該類的方法一是在Servlet的web.xml文件中配置Spring的ContextLoaderListener監聽器;二是修改web.xml配置文件,在其中添加一個Servlet,定義使用Spring的org.springframework.web.context.ContextLoaderServlet類。2

SpringIoC控制反轉與依賴注入什么是依賴注入?IoC將創建實例的任務交給IoC容器,這樣開發應用代碼時只需要直接使用類的實例,這就是IoC控制反轉,即“依賴注入”依賴注入的3種實現類型接口注入Setter注入構造器注入配置Bean要在SpringIoC容器中獲取一個bean,首先要在配置文件中的<beans>元素中配置一個子元素<bean>,Spring的控制反轉機制會根據<bean>元素的配置來實例化這個bean實例。<beanid="test"class="com.mr.Test"/>Setter注入publicclassUser{privateStringname;//用戶姓名privateIntegerage;//年齡privateStringsex;//性別……//省略的Setter和Getter方法}<!--UserBean--><beanname="user"class="com.mr.user.User"><propertyname="name"><value>無語</value></property><propertyname="age"><value>30</value></property><propertyname="sex"><value>女</value></property></bean>在上面的代碼中,<value>標簽用于為name屬性賦值,這是一個普通的賦值標簽。直接在成對的<value>標簽中放入數值或其他賦值標簽,Spring會把這個標簽提供的屬性值注入到指定的JavaBean中。構造器注入//構造方法publicUser(Stringname,Integerage,Stringsex){=name;this.age=age;this.sex=sex;}<!--UserBean--><beanname="user"class="com.mr.user.User"><constructor-arg><value>無語</value></constructor-arg><constructor-arg><value>30</value></constructor-arg><constructor-arg><value>女</value></constructor-arg></bean>在類被實例化時其構造方法被調用并且只能調用一次,所以構造器被常用于類的初始化操作。<constructor-arg>是<bean>元素的子元素,通過<constructor-arg>元素的<value>子元素可以為構造方法傳參。引用其他Bean和創建匿名內部JavaBean<beanname="/main.do"class="com.mr.main.Manager"><propertyname="user"><reflocal="user"/></property></bean><beanid="school"class="School"><propertyname="student"><beanclass="Student"/></property></bean>引用其他Bean創建匿名內部JavaBean3

AOP概述什么是AOP?AspectOrientedProgramming,即面向切面編程。切面是對象操作過程中的截面AOP術語切入點是連接點的集合對象操作過程中的某個階段點通知是某個切入點被橫切后所采取的處理邏輯,即在“切入點”處攔截程序后通過通知來執行切面4

Spring的切入點靜態與動態切入點靜態切入點動態切入點靜態切入點可以為對象的方法簽名,如在某個對象中調用了execute()方法時,這個方法即靜態切入點靜態切入點只能應用在相對不變的位置,而動態切入點可應用在相對變化的位置,如方法的參數上。深入靜態切入點靜態切入點在某個方法名上織入切面,所以在織入程序代碼前要匹配方法名,即判斷當前正在調用的方法是不是已經定義的靜態切入點。如果是,說明方法匹配成功并織入切面;否則匹配失敗,不織入切面。<!--深入靜態切入點--><beanid="pointcutAdvisor"class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"><propertyname="patterns"><list><value>.*execute.*</value><!--指定切入點--></list></property></bean>publicbooleanmatches(Methodmethod,ClasstargetClass){return(method.getName().equals("execute"));//匹配切入點成功}Spring中的其他切入點切入點實現類說

明org.springframework.aop.support.JdkRegexpMethodPointcutJDK正則表達式方法切入點org.springframework.aop.support.NameMatchMethodPointcut名稱匹配器方法切入點org.springframework.aop.support.StaticMethodMatcherPointcut靜態方法匹配器切入點org.springframework.aop.support.ControlFlowPointcut流程切入點org.springframework.aop.support.DynamicMethodMatcherPointcut動態方法匹配器切入點5

Aspect對AOP的支持Aspect概述Aspect即Spring中所說的切面,它是對象操作過程中的截面.AspectJ是Spring框架2.0版本之后增加的新特性,Spring使用了AspectJ提供的一個庫來完成切入點的解析和匹配。但是AOP在運行時仍舊是純粹的SpringAOP,它并不依賴于AspectJ的編譯器或者織入器,在底層中使用的仍然是Spring2.0之前的實現體系。Spring中的AspectDefaultPointcutAdvisor切入點配置器DefaultPointcutAdvisor位于org.springframework.aop.support.DefaultPointcutAdvisor包下的默認切入點通知者,它可以把一個通知配給一個切入點,使用之前首先要創建一個切入點和通知。創建通知publicTestAdviceimplementsMethodInterceptor{publicObjectinvoke(MethodInvocationmi)throwsThrowable{ObjectVal=ceed();returnVal;}}創建切入點publicclassTestStaticPointcutextendsStaticMethodMatcherPointcut{publicbooleanmatches(MethodmethodClasstargetClass){return(“targetMethod”.equals(method.getName()));}publicClassFiltergetClassFilter(){returnnewClassFilter(){publicbooleanmatches(Classclazz){return(clazz==targetClass.class);}};}}6

Spring持久化DAO模式Spring提供了一套抽象的DAO類供開發人員擴展,這有利于以統一的方式操作各種DAO技術,DAO模式JdbcDaoSupportHibernateDAO抽象類,開發人員需要為其配置HibernateSessionFactory,通過其子類能夠獲得Hibernate實現HibernateDaoSupportHibernateDAO抽象類,開發人員需要為其配置HibernateSessionFactory,通過其子類能夠獲得Hibernate實現。JdoDaoSupportSpring為JDO提供的DAO抽象類,開發人員需要為它配置PersistenceManagerFactory,通過其子類能夠獲得JdoTemplate。事務管理Spring中的事務基于AOP實現,而Spring的AOP以方法為單位,所以Spring的事務屬性是對事務應用的方法的策略描述。這些屬性為傳播行為、隔離級別、只讀和超時屬性。編程式事務管理在Spring中主要有兩種編程式事務的實現方法,分別使用PlatformTransactionManager接口的事務管理器或TransactionTemplate實現。二者各有優缺點,推薦使用后者實現方式,因其符合Spring的模板模式。聲明式事務管理聲明式事務不涉及組建依賴關系,它通過AOP實現事務管理,在使用聲明式事務時不須編寫任何代碼即可通過實現基于容器的事務管理。Spring提供了一些可供選擇的輔助類,它們簡化了傳統的數據庫操作流程。在一定程度上節省了工作量,提高了編碼效率,所以推薦使用聲明式事務。應用JdbcTemplate操作數據庫方法名稱說

明intQueryForInt(Stringsql)返回查詢的數量,通常是聚合函數數值intQueryForInt(Stringsql,Object[]args)longQueryForLong(Stringsql)返回查詢的信息數量longQueryForLong(Stringsql,Object[]args)ObjectqueryforObject(stringsql,ClassrequiredType)返回滿足條件的查詢對象ObjectqueryforObject(stringsql,ClassrequiredType,Object[]args)ListqueryForList(Stringsql)返回滿足條件的對象List集合ListqueryForList(Stringsql,Object[]args)JdbcTemplate類是Spring的核心類之一,可以在org.springframework.jdbc.core包中找到。該類在內部已經處理數據庫資源的建立和釋放,并可以避免一些常見的錯誤,如關閉連接及拋出異常等,因此使用JdbcTemplate類簡化了編寫JDBC時所需的基礎代碼。與Hibernate整合在Spring中整合Hibernate4時,已經不再提供HibenateTemplate和HibernateDaoSupport類了,而只有一個稱為LocalSessionFactoryBean的SessionFactoryBean,通過它可以實現基于注解或是XML文件來配置映射文件。與Hibernate整合#數據庫驅動hibernate.connection.driver_class=com.mysql.jdbc.Driver#數據庫連接的URLhibernate.connection.url=jdbc:mysql://localhost:3306/test#用戶名hibernate.connection.username=root#密碼hibernate.connection.password=123456與Hibernate整合<!--引入配置文件--><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <propertyname="locations"> <value>classpath:perties</value> </property></bean><beanid="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <propertyname="driverClassName"value="${hibernate.connection.driver_class}"/> <propertyname="url"value="${hibernate.connection.url}"/> <propertyname="username"value="${hibernate.connection.username}"/> <propertyname="password"value="${hibernate.connection.password}"/></bean>引入perties文件并配置數據源dataSource與Hibernate整合<beanid="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <propertyname="dataSource"> <refbean="dataSource"/> </property> <propertyname="hibernateProperties"> <props> <!--數據庫連接方言--> <propkey="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <!--在控制臺輸出SQL語句--> <propkey="hibernate.show_sql">true</prop> <!--格式化控制臺輸出的SQL語句--> <propkey="hibernate.format_sql">true</prop> </props> </property> <!--Hibernate映射文件--> <propertyname="mappingResources"> <list> <value>com/mr/user/User.hbm.xml</value> </list> </property></bean>配置Hibernate工廠類小結本章首先介紹了Spring框架核心技術IoC、AOP、Bean的相關知識,以及對Bean的配置與裝載;然后講解了Spring提供的資

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論