59142-JavaEE企業(yè)級應用開發(fā)與實戰(zhàn)(微課版)-教學設計(新)_第1頁
59142-JavaEE企業(yè)級應用開發(fā)與實戰(zhàn)(微課版)-教學設計(新)_第2頁
59142-JavaEE企業(yè)級應用開發(fā)與實戰(zhàn)(微課版)-教學設計(新)_第3頁
59142-JavaEE企業(yè)級應用開發(fā)與實戰(zhàn)(微課版)-教學設計(新)_第4頁
59142-JavaEE企業(yè)級應用開發(fā)與實戰(zhàn)(微課版)-教學設計(新)_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

學IT有疑問,就找千問千知千里尋他眾百度,鋒自苦寒磨礪出千鋒教育JavaEESSM企業(yè)級應用與實戰(zhàn)教學設計課程名稱:JavaEESSM企業(yè)級應用與實戰(zhàn)授課年級:_______________________授課學期:_______________________教師姓名:_______________________2022年06月24日課程名稱第1章初識SSM框架計劃學時2學時內容分析此章首先講解了SSM的基本概念,然后通過SSM和SSH框架的對比,講解了SSM框架的優(yōu)缺點。教學目標與教學要求【知識目標】理解SSM的概念及結構。理解SSM的用途及優(yōu)勢。掌握Spring、MyBatis和SpringMVC的基本概念。【思政育人目標】教學重點Spring框架教學難點無教學方式課堂講解及PPT演示(2學時)教學過程提出需求,導入學習任務(1)思考SSM框架的組成。學習一門框架,首先得知道因何誕生、獨特性和優(yōu)越性,才能知道此框架的核心所在。以SSM框架的發(fā)展作為切入點,介紹SSM框架使用的必要性。講解Spring、MyBatis和SpringMVC,了解各個框架的基本用途。(2)明確學習方向。Spring框架的具體作用,以及為什么要使用Spring框架。MyBatis框架的具體作用。SpringMVC框架的具體作用。第1學時:認識SSM(Spring、MyBatis和SpringMVC)一、知識講解Spring框架提前給出結論:在Spring出現(xiàn)之前,Java主要使用企業(yè)級JavaBean(EJB),而EJB框架過于依賴容器,加載緩慢,使用方式復雜。因此選用Spring框架解決這些問題。Spring框架的興起根據書本示例,編寫一個增加學生分數的示例,首先不使用Spring完成Student對象的獲取,隨后使用Spring完成Student對象的獲取,通過對比得出Spring容器化管理解決了對象的冗余問題,減少了開發(fā)人員的編碼量。MyBatis框架概述MyBatis是當前主流的Java持久層框架,具有高度靈活性、可優(yōu)化性和易于維護等特點,為目前企業(yè)級開發(fā)的首選持久層框架。MyBatis本質是一個ORM框架,其主要作用是將數據庫數據映射到常用的Java對象,流程圖如下。 數據庫中的表數據經過ORM框架處理過后,轉化為Java對象供用戶操作。SpringMVC核心思想SpringMVC負責處理前端的請求并返回相應的結果,SpringMVC可以直接使用Spring相關功能并且無需額外的配置文件。SpringMVC是目前企業(yè)級開發(fā)常用的MVC框架,專業(yè)術語稱MVC為“模型-視圖-控制器模式”。MVC框架是Model、View和Controller三個模塊的縮寫。SSM結構分析SSM整體結構可以拆分為三個部分,分別為MyBatis、SpringMVC和Spring。MyBatis框架負責和數據庫交互,SpringMVC負責與前端交互,Spring負責掌控整個系統(tǒng)的運行。講解整個請求的流程:前端發(fā)來請求后,此請求由SpringMVC框架接收,隨后發(fā)送給業(yè)務層,由業(yè)務層與MyBatis數據層交互,取到相應的數據后返回前端。二、知識鞏固回顧上課前的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第2個學時(略講):SSM框架的優(yōu)缺點一、知識講解SSH框架SSH框架是Struts+Spring+Hibernate三個企業(yè)級應用框架的首字母縮寫。Hibernate框架處于數據庫持久化層,類似SSM中的MyBatis框架。Struts框架作為控制層,類似于SSM中的SpringMVC框架。SSM框架的優(yōu)缺點Hibernate框架與MyBatis框架MyBatis框架:小巧、高效、簡單和半自動化,對SQL的生成較為自由,支持動態(tài)SQL和存儲過程,操作較為簡單,初步學習容易,缺點在于:不支持自動化,需要重復編寫一些重復的SQL語句,但是隨著后續(xù)MyBatisPlus等輔助插件的出現(xiàn),SQL同樣可以自動化生成。Hibernate框架:龐大,全自動、復雜、間接,對SQL的生成追求全自動化,入門較為困難。Struts框架與SpringMVC框架SpringMVC:具有簡單,便捷,強大等特點,性能方面,SpringMVC實現(xiàn)了低配置。Struts:特點是復雜,繁瑣。性能方面,Struts2是類級別的攔截,每次請求對應實例就要新建一個Action,加載所有的屬性值并注入。對比SSM框架與SSH框架SSM框架簡潔小巧功能強大,自定義性強,支持功能完善,而SSH框架復雜龐大,追求自動化,編寫過程較為復雜。知識鞏固回顧上節(jié)內容,對上節(jié)內容進行鞏固?;仡櫛菊碌膶W習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。習題教材第1章習題教學后記課程名稱第2章Spring基礎計劃學時3+14學時內容分析此章節(jié)講解了IoC容器的概念與Spring中Bean對象的概念,然后通過示例講解了Bean對象的添加與獲取。教學目標與教學要求【知識目標】理解Spring的概念。理解Spring中IoC和DI的概念。理解Spring的核心容器。理解Spring中Bean的概念【技能目標】掌握創(chuàng)建與獲取SpringBean的方法。掌握Web環(huán)境搭建的方法?!舅颊四繕恕拷虒W重點理解IoC與DI,Spring容器和Spring中的Bean的概念,掌握Bean的添加與獲取教學難點理解IoC與DI,Spring容器,Spring中的Bean的概念教學方式課堂講解及PPT演示上機演示法與學生練習法教學過程 提出需求,導入學習任務(1)思考Spring的核心體現(xiàn)。Spring主要的特性是容器,根據容器對Bean進行管理。容器的基本概念就是IoC和DI,這也是最重要的核心體現(xiàn)。(2)明確學習方向。了解IoC和DI。了解Spring中Bean的概念。使用Spring容器對Bean進行存取。第1學時:Spring概述(Spring簡介+優(yōu)勢+體系結構)一、知識講解Spring概述Spring簡介Spring是一個一站式的輕量級開源框架,具有IoC和DI兩大核心思想,除此之外還有面向切面編程AOP的支持。IoC和DI概念支撐著Spring對Bean的管理AOP技術對Spring中事務管理等功能起到關鍵作用Spring優(yōu)勢(詳細具體特點見PPT)與其他開發(fā)框架相比,Spring具有的優(yōu)勢主要體現(xiàn)在以下幾個方面降低耦合度,方便開發(fā)支持AOP編程支持聲明式事務方便程序測試方便集成各種優(yōu)秀框架降低JavaEEAPI的使用難度Spring體系結構(略講)Spring框架采用分層架構,由數據訪問、Web交互層、AOP框架、核心容器和測試模塊組成。數據訪問及集成此模塊主要負責Spring的數據交互。Web此模塊主要負責Web請求的交互。AOP、Aspect和Instrumentation此模塊主要提供了Spring的切面編程。核心容器負責維護核心容器的是Beans模塊、Core模塊、Context模塊和SpEL模塊。Beans和Core模塊為Spring中較為核心的模塊,其提供了IoC和DI思想的實現(xiàn)。Context模塊在Beans和Core模塊的基礎之上提供了框架式Bean的訪問方式。SpEL模塊提供了一個強大的表達式語言,該語言用于在Spring運行時查詢和操作對象。TESTTEST模塊支持使用JUnit或TestNG對Spring組件進行單元測試和集成測試。MESSAGESpring4版本時開始引入MESSAGE,MESSAGE主要用于Spring框架的消息傳送。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第2學時(重點理解):Spring的核心體現(xiàn)(IoC、DI、容器概念和Bean)知識講解IoC與DIIoC指將對象的控制權交由容器控制,開發(fā)人員無需編寫管理依賴關系的代碼,由Spring容器根據配置自動完成。DI是IoC思想的一種體現(xiàn),即通過注入方式來避免調用類對其他類的強依賴關系,方便開發(fā),減少代碼冗余。編寫Student類,為其注入Computer類。第一個示例通過newComputer創(chuàng)建對象為Student注入。第二個示例將Computer類加入到容器中,使用@Autowire注解為Student注入。抽象化流程,整個過程抽象為:“IoC思想為將對象交給容器管理,因此將Computer加入到容器中,隨后通過DI依賴注入的思想,當使用Computer時將其通過Spring容器注入到Student中?!痹谡麄€流程中,通過Spring的方式賦值,輔助學生理解IoC,DI和Spring容器的概念。Spring容器Spring容器是根據IoC思想來構建的,其中,重要的實現(xiàn)接口是BeanFactory和ApplicationContext。BeanFactoryBeanFactory是一個接口,它代表Spring的抽象容器,其中封裝了許多與Bean有關的抽象方法。ApplicationContextApplicationContext是BeanFactory的子接口,直譯又稱作應用上下文,ApplicationContext的子類ClassPathXmlApplicationContext是開發(fā)中常用的工具類。通過ClassPathXmlApplicationContext,可以創(chuàng)建一個簡單的Spring容器。Spring中的BeanSpring中的Bean對象就是被Spring管理的對象。例如創(chuàng)建的Student對象使用@Component注解或其他方式放入Spring容器后,此對象就叫成為了Bean對象。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。進行承上啟下的講解,本章講解的是Spring的基本概念,提出了ClassPathXmlApplicationContext對象是Spring容器的概念,下一節(jié)課將會使用ClassPathXmlApplicationContext進行容器操作。第3學時(重點操作):Spring示例(Spring容器的操作)知識講解Spring依賴下載(詳情見PPT)訪問官方的SpringJAR包下載地址,點擊下載。單擊spring-framework-5.0.8.RELEASE-dist.zip下載依賴包。訪問官方CommonsLogging包的下載地址,點擊下載。單擊commons-logging-1.2-bin.zip開始下載依賴包。從官方下載AOP注解所依賴的JAR包。Web環(huán)境搭建(詳細圖片步驟見PPT)創(chuàng)建項目為項目添加Web框架添加依賴包配置tomcatBean的添加與獲?。ㄖ攸c)創(chuàng)建Bean在工程的src目錄下創(chuàng)建一個Student類,其中只包含name和age參數。編寫配置文件首先在src文件夾下創(chuàng)建一個applicationContext配置文件,隨后將其設置為Spring的配置文件。編寫配置文件,在配置文件中添加一個StudentBean。<beanid="student"class="Student"></bean>容器加載配置文件在src下創(chuàng)建一個Test類,利用ApplicationContext容器的子類來加載配置文件。publicstaticvoidmain(String[]args){ClassPathXmlApplicationContextclassPathXmlApplicationContext=newClassPathXmlApplicationContext("applicationContext.xml");Objectstudent=classPathXmlApplicationContext.getBean("student");System.out.println(student);}運行此代碼,查看輸出的結果。在講解的過程中,強調操作ClassPathXmlApplicationContext容器存取Bean對象的概念。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第4學時(上機練習)學生根據教材中的操作步驟和教師的演示進行上機練習。主要內容:部署安裝Spring相關環(huán)境和軟件,并完成Bean對象在Spring容器中的添加與獲取。檢查學生對相關知識點的掌握情況,監(jiān)督學生完成任務。習題教材第2章習題教學后記課程名稱第3章Spring中Bean的注入計劃學時4+26學時內容分析此章首先介紹了Bean的構造器注入和屬性注入,然后介紹復雜注入中的集合注入和對象注入,最后講解Bean的各種作用域和Bean的相關注解。教學目標與教學要求【知識目標】理解Spring中Bean的作用域。理解Bean的生命周期?!炯寄苣繕恕空莆誃ean構造器注入的方法。掌握Bean集合注入的方法。掌握通過注解控制注入Bean的方法【思政育人目標】教學重點屬性注入,集合與對象的注入教學難點利用注解管理Bean教學方式課堂講解及PPT演示上機演示法與學生練習法教學過程提出需求,導入學習任務(1)思考Spring中Bean的屬性賦值方式。Spring簡單變量的賦值方式。Spring復雜對象的賦值方式。(2)思考從Spring容器中取出的Bean是否是同一個。如何控制Spring容器產生Bean的方式。(3)思考怎么利用注解來為容器注入Bean對象。第1學時:Bean的注入方式(構造器與屬性注入)一、知識講解構造器注入創(chuàng)建普通的對象創(chuàng)建一個普通的Dog對象,對象中含有name和age屬性。編寫配置文件<beanid="myDog"class="Dog"><constructor-argname="age"value="3"/><constructor-argname="name"value="旺財"/></bean>使用構造器注入Dog類,為Dog類賦值name和age屬性,講解<constructor-arg>的使用。測試容器中的Bean在Test類中利用容器ApplicationContext的子類ClassPathXmlApplicationContext獲取容器中注入的myDog,查看其屬性。ApplicationContextapplicationContext=newClassPathXmlApplicationContext("applicationContext.xml");/*使用getBean()方法獲取容器中的myDog實例*/Objectdog=applicationContext.getBean("myDog");System.out.println(dog);屬性注入(重點)使用構造器注入的例子,進行屬性注入的演示。編寫配置文件<beanid="myDog"class="Dog"><propertyname="age"value="13"/><propertyname="name"value="大旺財"/></bean>提醒:這種注入方式是通過調用對象中的set()方法來實現(xiàn)注入的,如果Dog類沒有setName()方法,則name不能注入。測試容器中的Bean使用構造器注入的測試類,測試Bean對象的輸出。結果見PPT。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第2學時:Bean的復雜注入(復雜類型的Bean注入,Bean對象的屬性傳遞)一、知識講解Bean的屬性

在介紹復雜注入之前,先介紹Bean的詳細配置。屬性說明class指定Bean對象相對于src目錄的路徑name指定此Bean對象的一個標識id指定此Bean對象的唯一標識,通常使用此id從容器中取Bean對象scope設置該Bean的作用域lazy-init設置是否為延遲加載,默認為false,非延遲加載init-method對象初始化方法destory對象銷毀方法講解每個屬性的使用方式,詳見PPT。集合與對象的注入當對象的屬性為集合與對象類型時,注入方式和之前有所不同。創(chuàng)建實例創(chuàng)建實體類對象,分別為三個類:Teacher類Student類和MyClass類,其中Teacher包含了MyClass類、position字符串列表、Students列表、score分數的Map集合和vacation字符串數組。具體代碼見PPT編寫配置文件編寫配置文件將Student和MyClass注入到Teacher中,其中重點講解<list>元素、<value>元素、<ref>元素、<map>元素、<entry>元素和<array>元素,具體代碼見PPT。測試Bean的屬性編寫測試類,使用getBean()方法獲取teacher對象,輸出此對象查看輸出結果。Bean之間屬性的傳遞在配置文件中,可以使用表達式來取用相關的值。<!--學生1--><beanid="student1"class="Student"><propertyname="age"value="13"/><propertyname="name"value="張三"/></bean><!--學生2--><beanid="student2"class="Student"><propertyname="age"value="#{student1.age}"/><propertyname="name"value="李四"/></bean>取用屬性的格式為#{perties}。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第3學時(理解):Bean對象的作用域(Bean對象singleton和prototype作用域)一、知識講解作用域的種類(PPT)Spring中Bean的作用域有7種。簡單介紹每個作用域。表中的7種作用域當中,重點講解singleton和prototype作用域。singleton與prototype作用域singleton是Spring默認的作用域,此種作用域下,獲取相同id的Bean,取得的都是相同的對象。prototype作用域為原型作用域,被標注為prototype的Bean,除第一次返回原地址外,以后從容器中獲取時都會以載入容器時的此Bean為原型,返回新的對象。通過<bean>元素的scope屬性可以設置其作用域。<beanid="myClass"class="MyClass"scope="singleton"/>scope是作用域元素,將其bean元素加上scope作用域,分別填寫singleton和prototype。然后進行測試。測試結果見PPT。得出結論,prototype原型作用域在每次獲取時,得到的對象都不相同,而singleton單例作用域在每次獲取時,得到的對象均相同。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第4學時(理解):利用注解管理Bean(Bean注解的使用)一、知識講解作用域的種類Bean相關的注解非常多,列舉表格(見PPT)。配合表格初步講解每個注解的作用。提示:常用的還有Service、Repository和Controller注解,這三個注解的作用均與Component完全相同,用不同的名稱只是來區(qū)分每個注解的用途。注解的應用創(chuàng)建Book類、Student類和application.xml文件。見PPT。使用測試類,加上包掃描注解。<context:component-scanbase-package="com"/>掃描com包下的所有注解,使其生效使用@Value注解為屬性賦值,同時使用@Component注解將其放到容器中。最后使用測試類將對象取出,查看賦值后的對象。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第5學時(可選):Bean的生命周期一、知識講解Bean的生命周期主要講解Bean創(chuàng)建、初始化和銷毀的過程。舉例典型的使用生命周期的方式。自定義初始化和銷毀時調用的方法。@PostConstructpublicvoidinit(){System.out.println("初始化");}@PreDestroypublicvoiddestroy(){System.out.println("銷毀");}通過@PostConstruct注解與@PreDestroy注解來標注一個方法為初始化方法和銷毀方法。隨后調用此類,觀察輸出。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第5-6學時(上機練習)學生根據教材中的操作步驟和教師的演示進行上機練習。主要內容:練習構造器注入和屬性注入;練習集合對象的注入;練習Bean之間的屬性傳遞;練習Bean之間的屬性傳遞;練習Bean不同作用域下的取用;練習使用注解創(chuàng)建Bean對象并為其賦值。檢查學生對相關知識點的掌握情況,監(jiān)督學生完成任務。習題教材第3章習題教學后記課程名稱第4章Spring中的AOP計劃學時4+26學時內容分析此章首先介紹AOP的概念,之后分別通過注解和XML方式實現(xiàn)了Spring的AOP。接下來講解了AOP切面的優(yōu)先級,最后講解了AOP的實現(xiàn)原理。教學目標與教學要求【知識目標】理解Spring中AOP的概念。理解AOP的實現(xiàn)原理與實現(xiàn)方式?!炯寄苣繕恕空莆誂OP的基本操作。掌握AOP配置的優(yōu)先級?!舅颊四繕恕拷虒W重點AOP基本概念、AOP中的核心概念、基于注解實現(xiàn)AOP和execution表達式教學難點AOP中的核心概念、基于注解實現(xiàn)AOP和execution表達式教學方式課堂講解及PPT演示上機演示法與學生練習法教學過程提出需求,導入學習任務(1)思考面向切面編程的概念。如何在一個方法的前后添加執(zhí)行的代碼。(2)思考AOP的實現(xiàn)原理。思考JAVA動態(tài)代理的原理。第1學時:AOP簡介(AOP核心概念)一、知識講解AOP基本概念與OOP面向對象的思想類似,AOP指的是將重復加在業(yè)務前后的代碼抽取,通過切面方式應用在方法上。舉例講解。創(chuàng)建普通的對象創(chuàng)建一個普通的BookHandler對象,對象中含有addBook()業(yè)務方法。編寫針對于BookHandler的增強類首先以非AOP的方式完成日志記錄的需求(代碼見PPT),從非AOP代碼看出,代碼比較麻煩,侵入性較強。接下來使用AOP方式編寫AOP增強類(增強類見PPT)。在類的上方需要附加@Aspect注解,標明此類為切面處理類。dealAddLog()方法上方的@Before注解是一個通知注解,表明被此注解附加的方法會在目標方法執(zhí)行之前執(zhí)行。配置Spring配置文件,向其中添加<aop:aspectj-autoproxy/>。測試調用被代理的方法在測試類中獲取被代理類,調用其中的被增強方法,查看輸出。AOP中的核心概念(重點)此概念需要通過示例為學生講解。連接點(JoinPoint)連接點它表示一個時機。通知(Advice)通知表示的是在連接點上執(zhí)行的某段代碼。切點(PointCut)切點是匹配連接點的一個抽象概念。目標對象(Target)目標對象是指需要被處理的目標業(yè)務類。切面(Aspect)切面代指一個被AOP處理的類??椚耄╓eaving)織入是將通知添加到目標類具體連接點的過程。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第2學時:Spring中AOP的實現(xiàn)方式(基于注解和基于XML實現(xiàn)AOP)一、知識講解基于注解實現(xiàn)AOP(重點)展示AOP的注解表(見PPT)。簡單講解每個注解的含義。接下來通過表中的注解編寫一個切面類,目標對象選用上節(jié)中的BookHandler類(切面類見PPT)。針對切面類詳細講解每個注解的作用。最后調用其中的被增強方法,查看目標方法前后的輸出。觀察輸出結果,驗證每個注解的作用,測試完成。execution表達式execution表達式的格式如下。 execution(<修飾符><返回類型><包名>.<類名>.<方法名>(<參數>))將addBook()方法作為目標方法,execution表達式完整寫法如下。execution(publicvoidcom.BookHandler.addBook(Book))其中public修飾符、包、類可以省略,其他不可以省略。在開發(fā)中,只省略修飾符,通常的寫法如下所示。 execution(voidcom.BookHandler.addBook(Book))當需要指定多個方法時,可以根據方法名的特征選用“*”作為參數。 execution(*com.*Handler.add*(**))針對以上代碼,進行詳細講解,講解清楚每個符號的作用詳細見PPT?;赬ML實現(xiàn)AOPXML方式配置AOP相比注解方式,步驟繁瑣,書寫量大,且不易于維護。XML實現(xiàn)AOP的方式在開發(fā)中很少使用,了解即可。列舉XML中AOP元素表(見PPT),簡單的講解一下作用。以上節(jié)中的BookHandler類為目標對象,構造切面類(見PPT)。針對此切面類進行講解,比較此切面類與注解切面類的不同。隨后編寫配置文件,配置切點的映射。完成后測試結果,結果合注解方式一樣。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第3學時:AOP中切面的優(yōu)先級(基于注解和基于XML配置切面的優(yōu)先級)一、知識講解開篇:工作中用到的配置優(yōu)先級的方法一般是@Order注解,其他方式僅供了解?;谧⒔馀cOrder接口配置優(yōu)先級基于注解(掌握)首先列舉兩個示例Aspect1和Aspect2,演示優(yōu)先級之間的關系,測試在相同情況下執(zhí)行順序,得出結論Aspect1先切入。講述:這兩個切入類都切入同一個方法,默認按照切入類的字典順序來排序。此時想要改變這兩個切入類的執(zhí)行順序,就需要使用@Order注解隨后加上@Order注解,演示使用方式,測試改變后的結果:Aspect2先切入?;诮涌冢私猓┚帉慜rdered接口的實現(xiàn)方式。測試執(zhí)行,效果與注解方式相同?;赬ML配置優(yōu)先級(了解)通過XML配置AOP中切面的優(yōu)先級的方式在開發(fā)中不常用,了解即可。編寫配置文件。使用</aop:config>元素配置一次即可,測試結果,與以上兩種方式得出的結果一致。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第4學時:AOP的實現(xiàn)原理(JDK與CGLib動態(tài)代理)一、知識講解代理設計模式在了解動態(tài)代理之前,先要了解代理設計模式,講解代理模式的UML類圖(見PPT)。接下來使用示例完成一個代理設計模式。創(chuàng)建Drink接口.......講解:以上示例將目標對象隱藏,用戶只能接觸代理對象,調用代理對象的方法,隨后由代理方法調用目標對象的目標方法,完成代理。JDK動態(tài)代理以代理設計模式的示例為基礎,創(chuàng)建測試類,在測試類中使用JDK動態(tài)代理創(chuàng)建代理對象(見PPT)。對示例進行講解,注重理解,不要求學生會寫。測試結果,代理成功。CGLib動態(tài)代理講解:動態(tài)代理除JDK提供的方式之外還有CGLib提供的方式,稱為CGLib動態(tài)代理,此代理方式不需要通過接口,而是通過繼承子類的方式產生代理對象。編寫示例,對示例進行講解,注重理解,不要求學生會寫。測試結果,代理成功??偨YJDK代理與CGLib代理的不同點和相同點。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第5-6學時(上機練習)學生根據教材中的操作步驟和教師的演示進行上機練習。主要內容:練習使用注解實現(xiàn)AOP;練習編寫Execution表達式;練習配置切面的優(yōu)先級;檢查學生對相關知識點的掌握情況,監(jiān)督學生完成任務。習題教材第4章習題教學后記課程名稱第5章Spring與數據庫的交互計劃學時2學時內容分析本章介紹了Spring與數據庫交互的相關知識,其中包括數據庫配置和JDBCTemplate的增刪改查操作。教學目標與教學要求【知識目標】理解SpringJDBC的概念。了解JDBCTemplate的常用API?!炯寄苣繕恕空莆認DBCTemplate的使用。掌握JDBCTemplate封裝Dao的方法?!舅颊四繕恕拷虒W方式課堂講解及PPT演示教學過程提出需求,導入學習任務(1)思考Spring中的數據庫連接方式。JDBC操作數據庫方式。Spring封裝的數據庫操作方式。第1學時:SpringJDBC基礎(SpringJDBC的簡介與配置)一、知識講解SpringJDBC基礎(重點理解)SpringJDBC由四個部分組成,這些部分分別為core(核心包)、object(對象包)、dataSource(數據源包)和support(支持包)其中較為核心的是core包中的JDBCTemplate類,與dataSource包下的DriverManagerDataSource類。DriverManagerDataSource類負責配置相關的數據庫連接參數。JDBCTemplate類封裝對數據庫的操作,是操作數據庫的工具類。SpringJDBC的配置創(chuàng)建普通的對象登錄Maven官網,下載JDBC依賴。將下載完成的JAR包加入lib文件夾,將其加入框架。配置DriverManagerDataSource類與JDBCTemplate類配置連接示例(PPT),注重講解一點:DriverManagerDataSource是連接的參數,JDBCTemplate類是連接工具。JDBCTemplate類需要DriverManagerDataSource支持。最終使用JDBCTemplate類來進行操作。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第2學時:JDBCTemplate操作數據庫(不重要僅了解)(DQL、DML和DDL操作)一、知識講解開篇:此章只需要了解,不需要掌握,到后面講解MyBatis操作時,會代替本節(jié)的JDBC操作。幫助學生復習DQL、DML和DDL操作。隨后為學生演示每一種操作訪問的方式(示例可提前準備好,隨后直接為學生展示一邊即可)。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第3學時(理解):JDBCTemplate的注入一、知識講解(此章節(jié)目的在于幫助學生配置隨時在Spring中注入JDBCTemplate)配置XML配置文件通過@Autowire注解將JDBCTemplate注入到類中,隨后測試訪問即可(可參考PPT的示例)二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。習題教材第5章習題教學后記課程名稱第6章Spring事務計劃學時4+26學時內容分析本章介紹了Spring與數據庫交互的相關知識,其中包括數據庫配置和JDBCTemplate的增刪改查操作。教學目標與教學要求【知識目標】理解Spring事務的概念。理解Spring事務的管理方式?!炯寄苣繕恕空莆帐聞盏母綦x級別與傳播方式的使用。掌握Spring事務注解的使用。【思政育人目標】教學方式課堂講解及PPT演示上機演示法與學生練習法教學過程提出需求,導入學習任務(1)思考事務的定義。事務在Spring中的管理。Spring事務的傳播方式。第1學時:Spring事務概述(Spring的事務管理方式)一、知識講解Spring的事務管理講述:在開發(fā)中,通常使用Spring中的@Transactional注解處理事務。講解@Transaction注解的作用。展示示例,在實例中操作數據庫,模擬錯誤,隨后使用@Transaction注解來處理此操作。配置applicationContext.xml文件,添加事務支持配置。通過對比展示不使用@Transaction注解和使用@Transaction注解這兩種方式的不同。事務的管理方式講述:事務的管理方式有很多種,在此簡單介紹其中的兩種,分別為編程式事務管理和聲明式事務管理。編程式事務管理(可選)編程式事務:編寫原生代碼實現(xiàn)事務,由于操作較為繁瑣,因此在開發(fā)中不使用。在配置文件中配置TransactionManager的Bean對象在代碼中注入TransactionManager對象。編寫示例,示例見PPT,講解此段代碼。聲明式事務管理講述:聲明式事務管理是通過SpringAOP技術實現(xiàn)的。此種方式簡單便捷,對代碼的侵入性較小,是開發(fā)時常用的事務管理方法。聲明式事務管理方式將事務相關的代碼作為一個切面,織入到目標方法上。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。第2學時:聲明式事務的使用(重點)(基于注解與XML方式完成聲明式事務)知識講解講述:注解方式實現(xiàn)聲明式事務需要熟練掌握。XML方式實現(xiàn)聲明式事務僅僅需要了解?;谧⒔馔瓿陕暶魇绞聞赵赟pring配置文件中啟用事務注解在需要被事務處理的類或方法上加上@Transactional注解。講解@Transacation注解的屬性。編寫示例,演示@Transacation注解的read-only和timeout屬性操作?;赬ML完成聲明式事務(可選)講解AOP中XML方式的相關元素配置,例如<tx:advice>元素、<tx:attributes>元素和<tx:method>元素。講解這些事務元素的相關屬性(見PPT表)創(chuàng)建ModifyAccount類,此類將會被作為目標類。在XML文件中配置切面和通知。通過Test類的執(zhí)行觀察最后結果,結果為轉賬金額沒有變化。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第3學時:事務的傳播方式知識講解講述:當一個事務方法(標記為@Transactional的方法)調用了另一個事務方法時,事務之間將會出現(xiàn)沖突,即方法無法選擇使用哪個事務,為解決此問題,Spring提供了七種事務傳播方式。給出模板示例,并講解此代碼的基本操作,為后續(xù)七種事務講解做鋪墊。publicvoidmain(){insertA(a);//將a插入A數據庫test();}//其他類中的方法publicvoidtest(){insertB(b);//將b插入B數據庫throwException;insertB(c);//將c插入B數據庫}Spring的事務管理講解每種事務的隔離級別。PROPAGATION_REQUIRED講解此種隔離級別的作用:如果當前沒有事務,則自己新建一個事務,如果當前存在事務,則加入這個事務。列舉示例(見PPT),講解a與b的數據庫事務的執(zhí)行流程。講解完畢后,提出在后續(xù)的NESTED傳播方式中會與此例作對比。PROPAGATION_REQUIRES_NEW講解此種隔離級別的作用:如果當前沒有事務,則新建一個事務,如果當前存在事務,則仍然新建一個事務。列舉示例(見PPT),講解a與b的數據庫事務的執(zhí)行流程。PROPAGATION_SUPPORTS講解此種隔離級別的作用:如果當前沒有事務,就不用事務,如果當前存在事務,則使用此事務。列舉示例(見PPT),講解a與b的數據庫事務的執(zhí)行流程。PROPAGATION_NOT_SUPPORTED講解此種隔離級別的作用:始終以非事務方式執(zhí)行,如果當前存在事務,則掛起當前事務。列舉示例(見PPT),講解a與b的數據庫事務的執(zhí)行流程。PROPAGATION_MANDATORY講解此種隔離級別的作用:當前存在事務,則加入當前事務,如果當前事務不存在,則直接拋出異常。列舉示例(見PPT),講解a與b的數據庫事務的執(zhí)行流程。PROPAGATION_NEVER講解此種隔離級別的作用:不使用事務,如果當前事務存在,則拋出異常。列舉示例(見PPT),講解a與b的數據庫事務的執(zhí)行流程。PROPAGATION_NESTED講解此種隔離級別的作用:如果當前事務存在,則在嵌套事務中執(zhí)行,否則新建一個事務。列舉示例(見PPT),講解a與b的數據庫事務的執(zhí)行流程。對比PROPAGATION_REQUIRED隔離級別。嵌套事務表示此事務雖然原事務中運行,但是在此嵌套事務中發(fā)生的錯誤可以被捕獲,不影響原事務的執(zhí)行。對比此種傳播方式與REQUIRED_NEW傳播方式的區(qū)別,總結NESTED傳播方式的要點:嵌套事務中異??梢员辉聞詹蹲?,從而不影響原事務的運行,而原事務發(fā)生異常后,嵌套事務會隨著原事務一起回滾。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第4學時:Spring事務失效問題一、知識講解講述:在日常開發(fā)中經常會遇到Spring事務失效問題,本節(jié)介紹導致Spring事務失效的原因。同一個類事務方法之間的調用在同一個類中非事務方法調用其他事務方法會導致事務方法失效。根據示例(示例見PPT)講解測試類以及同一個類中事務方法調用失敗的原因異常被捕獲如果在運行過程中,異常被捕獲,則該事務將無法檢測到錯誤,不會回滾數據。根據示例講解代碼(示例見PPT)。事務配置的隔離級別講述:當事務的隔離級別配置為SUPPORT時,當前沒有事務的情況下,不會啟用事務。數據庫不支持事務講述:當使用MySQL數據庫時,數據庫引擎設置為MyISAM是不支持事務的。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第5-6學時(上機練習)學生根據教材中的操作步驟和教師的演示進行上機練習。主要內容:使用注解方式編寫聲明式事務,練習隔離級別的使用。檢查學生對相關知識點的掌握情況,監(jiān)督學生完成任務。習題教材第5章習題教學后記課程名稱第7章MyBatis基礎計劃學時2+24學時內容分析本章首先介紹了ORM框架和MyBatis的基本知識,然后介紹了MyBatis的工作流程和核心組件,接下來以一個示例講解了MyBatis的簡單示例,最后講解了MyBatis的接口開發(fā)方式教學目標與教學要求【知識目標】了解ORM框架的概念。了解MyBatis的功能架構和核心思想。理解MyBatis的基本概念。【技能目標】掌握MyBatis的下載和安裝。掌握MyBatis入門程序的編寫?!舅颊四繕恕拷虒W重點SqlSessionFactory與SqlSession,MyBatis接口開發(fā)教學方式課堂講解及PPT演示上機演示法與學生練習法教學過程提出需求,導入學習任務(1)思考ORM框架的工作原理。(2)思考MyBatis框架的工作原理。第1學時:MyBatis概述(ORM,MyBatis框架)一、知識講解ORM框架講述:ORM框架是一個對象-關系映射的系統(tǒng)化解決方案,負責將數據庫查詢的數據封裝為實體類對象。實體類與數據庫之間通過ORM框架相互映射,應用程序可以直接通過ORM框架取得映射完成的實體類。MyBatis簡介MyBatis是一款優(yōu)秀的ORM框架,它需要手動提供POJO、SQL語句并匹配映射關系。MyBatis允許開發(fā)人員利用數據庫的各項功能,例如存儲過程、視圖、復雜查詢等,完成復雜的操作,具有高度靈活、可優(yōu)化和易于維護等優(yōu)點。MyBatis支持動態(tài)列、動態(tài)表明和存儲過程,同時提供了簡易的日志、緩存和級聯(lián)功能。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第2學時:MyBatis核心模塊(SqlSessionFactory與SqlSession)一、知識講解MyBatis工作流程講解MyBatis工作流程。編寫配置文件與映射文件MyBatis通過配置文件和映射文件生成SqlSessionFactory對象通過SqlSessionFactory對象生成SqlSession對象在一次連接中,通過SqlSession對象操作數據庫,SqlSession通過底層的Executor執(zhí)行器執(zhí)行對應操作SqlSessionFactory與SqlSession(重點)講述:SqlSessionFactory與SqlSession是MyBatis中的核心類,它采用工廠設計模式構建,負責創(chuàng)建SqlSession對象。構建SqlSessionFactory對象講解SqlSessionFactoryBuilder對象的方法。構建SqlSessionFactory對象需要使用SqlSessionFactoryBuilder類,調用SqlSessionFactoryBuilder類中的builder()方法即可創(chuàng)建SqlSessionFactory對象。獲得配置文件流之,將其作為參數傳入SqlSessionFactoryBuilder的build()方法中,調用build()方法,返回值就是SqlSessionFactory對象。使用SqlSessionFactory對象講解SqlSessionFactory對象的方法。在SqlSessionFactory類中存在openSession()方法,此方法可以創(chuàng)建SqlSession對象,也可以在該方法中傳入參數來設置創(chuàng)建的SqlSession對象。使用SqlSession對象(重點)SqlSession對象是MyBatis中的核心類對象。SqlSession對象提供了執(zhí)行SQL,提交事務或回滾事務,使用映射器等方法,在方法中需要指定映射文件中的方法。對應PPT中SqlSession對象的查詢方法進行講解,具體方法見PPT中的SqlSession對象表格。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第3學時:MyBatis應用示例(MyBatis下載,MyBatis簡單操作)一、知識講解MyBatis的下載具體操作如PPT所示。下載MyBatis依賴解壓MyBatis依賴添加MyBatis的Jar包MyBatis的簡單應用創(chuàng)建數據庫表創(chuàng)建數據庫Dog表添加數據查看Dog表數據創(chuàng)建實體類創(chuàng)建一個Dog的實體類(見PPT)。創(chuàng)建配置文件在src目錄下新建mybatis-config.xml。講解MyBatis配置文件的作用。創(chuàng)建映射文件創(chuàng)建mapper文件夾創(chuàng)建Dog類對應的映射文件講解映射文件中<mapper>元素、<select>元素和namespace屬性的作用。在MyBatis配置文件中添加<mappers>元素(見PPT),將映射文件添加到MyBatis文件當中。測試數據庫操作創(chuàng)建測試類在此類中使用InputStream將MyBatis配置文件傳入到SqlSessionFactoryBuilder類的Builder()方法中,獲得SqlSession對象使用SqlSession進行增刪改查SqlSession的增刪改查操作SqlSession的新增操作在DogMapper.xml文件中的<mapper>元素中加入映射信息<insertid="insertDog"parameterType="com.Dog">insertintodog(name,age)value(#{name},#{age})</insert>利用<insert>元素創(chuàng)建一個插入操作。parameterType屬性代表傳入的參數對象類型。在<insert>元素內使用“#{}”方式取用參數對象中的屬性新建Test類(見PPT),測試插入語句的執(zhí)行SqlSession的修改操作在DogMapper.xml文件中的<mapper>元素中加入映射信息<updateid="updateDog"parameterType="java.util.Map">updatedogsetage=#{age}whereid=1</update>利用<update>元素創(chuàng)建一個更新操作。講解parameterType屬性的作用。在<update>元素內使用“#{}”方式取用Map中的屬性。在com包下創(chuàng)建TestUpdate類(見PPT),測試更新語句的執(zhí)行。SqlSession的刪除操作在DogMapper.xml文件中的<mapper>元素中加入映射信息<deleteid="deleteDog">deletefromdogwhereid=#{id}</delete>利用<delete>元素創(chuàng)建一個刪除操作。在<update>元素內使用“#{}”方式取用屬性。在com包下創(chuàng)建TestDelete類(見PPT),測試刪除語句的執(zhí)行。SqlSession的模糊查詢在DogMapper.xml文件中的<mapper>元素中加入映射信息。<selectid="selectByName"resultType="com.Dog">select*fromdogwherenamelike'%${name}%'</select>利用<select>元素創(chuàng)建一個查詢操作,resultType屬性為返回值類型,返回值類型為Dog類,在<select>元素內使用“${}”方式取用屬性。講解“${}”的作用,分析“${}”和“#{}”的不同。在com包下創(chuàng)建TestSelectByName類(見PPT),測試模糊查詢語句的執(zhí)行。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第4學時:MyBatis接口開發(fā)一、知識講解使用XML文件的方式完成開發(fā),調用時必須獲取后才能調用,為解決此問題,MyBatis提供了接口開發(fā)的方式。創(chuàng)建目錄在src目錄下創(chuàng)建com文件夾,在com文件夾下創(chuàng)建mapper文件夾和pojo文件夾。創(chuàng)建實體類與數據庫在pojo文件夾下創(chuàng)建Dog類,并在數據庫中創(chuàng)建Dog表。創(chuàng)建配置文件在resource文件夾下創(chuàng)建MyBatis配置文件,隨后編寫配置文件(見PPT)。講解<mapper>元素中,<package>元素的作用。創(chuàng)建映射文件與mapper接口文件在mapper文件夾下創(chuàng)建DogMapper文件(見PPT)。文件名命名為DogMapper,此名需要與映射文件名保持一致。DogMapper接口中的方法名,應與映射文件中操作的id保持一致。編寫DogMapper對應的映射文件(見PPT)。<mapper>元素的namespace屬性需要填寫對應mapper接口的絕對路徑此外<select>元素中的id屬性需要和mapper接口中的方法名對應。創(chuàng)建測試文件在com文件夾下創(chuàng)建Test類(見PPT)。講解Test類中getMapper()方法,使同學理解這種使用對象進行操作的概念。展示整體的的目錄結構。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。習題教材第1章習題教學后記第3-4學時(上機練習)學生根據教材中的操作步驟和教師的演示進行上機練習。主要內容:編寫MyBatis配置文件,并通過配置文件生成SqlSession對象,使用SqlSession對象進行數據庫操作。練習使用MyBatis接口開發(fā)。檢查學生對相關知識點的掌握情況,監(jiān)督學生完成任務。課程名稱第8章MyBatis核心配置計劃學時4+26學時內容分析此章分別針對MyBatis的配置文件和映射文件進行講解。教學目標與教學要求【知識目標】了解配置文件與映射文件的結構。【技能目標】掌握MyBatis配置文件的運用。掌握MyBatis映射文件的運用?!舅颊四繕恕拷虒W重點<environments>元素、<select>查找元素、<insert>增加、<delete>刪除、<update>修改元素和<resultMap>結果集元素教學難點<resultMap>結果集元素教學方式課堂講解及PPT演示上機演示法與學生練習法教學過程 提出需求,導入學習任務(1)思考MyBatis的核心配置。掌握MyBatis的配置文件和映射文件。掌握MyBatis配置文件和映射文件的結構第1-2學時:MyBatis配置文件一、知識講解配置文件概覽MyBatis規(guī)定了其配置文件的層次結構(見PPT)。講解層次結構配置文件中元素先后順序是固定的,需要按照官方提供的順序編寫配置文件。<properties>元素<properties>是一個用于配置屬性的元素,MyBatis支持兩種方式配置屬性,接下來詳細介紹這兩種方式。配置文件內設置屬性講解<property>元素的使用。將數據庫連接的參數通過<property>元素寫到上方,隨后使用"${myDriver}"的方式引用。配置文件引用外部資源文件在src目錄下新建perties文件,將數據庫配置寫入其中。在配置文件中使用<properties>元素的resource屬性,指定perties文件。使用“${}”引用perties文件中的內容。<settings>元素講解:<settings>元素控制著MyBatis運行時的狀態(tài)和行為。講解<settings>元素表格(見PPT)。講解<settings>元素的配置樣例(見PPT)。<typeAliases>元素提出映射文件中,resultType屬性的包名過長問題。介紹<typeAliases>元素,使用<typeAliases>元素設置別名來解決此問題。演示<typeAliases>元素在單個目錄指定的使用方法。演示<typeAliases>元素在多個目錄下,使用<package>元素指定包名,進行批量縮減。<typeHandlers>元素(可選)講解:TypeHandler是一個負責處理數據庫列到屬性之間的轉換工具。從數據庫的int類型轉化為Java中的Integer類型就需要TypeHandler來處理。講解常見的TypeHandler(表格見PPT)。當JDBC類型與Java類型不匹配時,就需要自定義TypeHandler。舉例數據庫Integer字段到Java中Boolean類型間的轉換(代碼見PPT)。<objectFactory>元素(可選)講解:ObjectFactory負責創(chuàng)建結果集對象。結果集需要映射為對象時就需要用到ObjectFactory。當需要干預結果集對象的創(chuàng)建過程時,就需要創(chuàng)建自定義ObjectFactory。講解自定義ObjectFactory的步驟(見PPT)。<environments>元素<environments>元素主要的作用是配置數據庫連接環(huán)境。列舉常用的配置項,講解每個配置項的作用(見PPT)。講解<environments>元素中<dataSource>元素的三個type屬性。UNPOLLED表示不使用連接池進行連接,即每一次連接都會新建。POOLED表示連接池,分為三種情況講解,當連接池有連接、沒連接有位置、沒連接沒位置時連接池的分配。<mappers>元素講解:在MyBatis配置文件當中,<mappers>元素用來引入映射文件。介紹<mappers>元素引入映射文件的兩種方法。一種為資源路徑直接引用,利用<mapper>元素的resource屬性指定資源。另一種為掃描包中的全部映射器接口,使用<package>元素的name屬性指定包。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第1-2學時:MyBatis映射文件一、知識講解映射文件概覽講解:映射文件是MyBatis中的重要組成部分,它包含了開發(fā)中編寫的SQL語句、參數、結果集等。講解映射文件的生效條件:需要被引入到配置文件中才能生效。講解映射文件的文件結構(見PPT)。查找元素講解:<select>元素為查找所用的元素,此元素負責編寫查詢的SQL語句,參數類型和返回值類型等信息。舉例編寫一個查詢語句(見PPT),詳細講解其中的每一個參數。詳細講解<select>元素的每一個屬性(屬性表見PPT)。增加刪除修改元素講解:<insert>、<delete>和<update>元素分別對應增加刪除修改功能。講解<insert>元素的示例(見PPT),并且指出parameterType屬性的作用。講解<delete>元素的示例(見PPT),并且指出#{}在單一值情況下的賦值方法。講解<update>元素的示例(見PPT)。講解:增刪改操作均返回操作影響的行數。結果集元素(難點)講解:<resultMap>元素為映射結果集元素,負責數據庫返回值與對象之間的映射。根據示例講解<resultMap>元素的各個標簽,強調數據庫數據通過resultMap映射到實體類的過程。設置主鍵的映射設置列的映射設置對象類型映射設置集合類型映射<sql>元素講解:<sql>元素設計的初衷在于簡化列名的書寫。舉例展示<sql>元素的作用。使用<include>元素來取用<sql>元素的內容二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第5-6學時(上機練習)學生根據教材中的操作步驟和教師的演示進行上機練習。主要內容:部署安裝Spring相關環(huán)境和軟件,并完成Bean對象在Spring容器中的添加與獲取。檢查學生對相關知識點的掌握情況,監(jiān)督學生完成任務。習題教材第8章習題教學后記課程名稱第9章MyBatis進階計劃學時4+26學時內容分析本章首先介紹了MyBatis的緩存機制,然后介紹了MyBatis動態(tài)SQL的使用,最后講解了MyBatis的關聯(lián)查詢與注解開發(fā)。教學目標與教學要求【知識目標】了解MyBatis緩存的作用。【技能目標】掌握MyBatis動態(tài)SQL的運用。掌握MyBatis級聯(lián)查詢的方法。掌握MyBatis注解開發(fā)的方法?!舅颊四繕恕拷虒W重點動態(tài)SQL<if>、<where>、<set>、<trim>、<choose>、<when>、<otherwise>和<foreach>元素,一對一級聯(lián)查詢,一對多級聯(lián)查詢,多對多級聯(lián)查詢。教學難點一對多級聯(lián)查詢,多對多級聯(lián)查詢。教學方式課堂講解及PPT演示上機演示法與學生練習法教學過程 提出需求,導入學習任務(1)思考MyBatis的緩存,怎樣提高查詢效率。MyBatis針對于同一個類的緩存,對不同類的緩存。(2)思考MyBatis的動態(tài)SQL,怎樣靈活的使用SQL語句。(3)思考MyBatis的級聯(lián)查詢。一對多,多對多。第1學時:MyBatis緩存一、知識講解MyBatis緩存簡介講解:MyBatis提供了兩種緩存方式,一種為針對于SqlSession的緩存,此種緩存方式默認開啟;另一種為針對于全局的緩存,需要手動開啟。一級緩存概述講解:第一次查詢,MyBatis會將查詢結果放在緩存中,當再次使用這個SqlSession進行同一個查詢時,直接將緩存中的數據返回。講解一級緩存的流程圖(見PPT),突出“同一SqlSession”的查詢。講解什么規(guī)定為同一個查詢(如下)。1)傳入的statementId是否相同2)查詢時結果集范圍是否相同3)查詢的最終SQL語句是否相同4)傳遞給Statement的參數是否相同二級緩存概述講解:第一次查詢,MyBatis會將查詢結果放在緩存中,當再次進行同一命名空間的查詢時,無論SqlSession是否相同,直接將緩存中的數據返回。講解二級緩存的流程圖(見PPT),突出“同一NameSpace”的查詢。創(chuàng)建示例演示一級緩存和二級緩存(見PPT)。創(chuàng)建數據庫構造目錄創(chuàng)建實體類創(chuàng)建配置文件與數據庫配置創(chuàng)建好環(huán)境后,測試一級緩存的效果:將二級緩存禁用,并且開啟日志,使用同一個SqlSession發(fā)起多次查詢。結果是兩次查詢只有一次日志,得出結論:相同SqlSession一級緩存生效。測試不同SqlSession查詢時一級緩存的效果:將二級緩存禁用,使用不同的SqlSession發(fā)起多次查詢。結果是兩次查詢有兩次日志,得出結論:不同SqlSession一級緩存失效。測試不同SqlSession同一命名空間查詢時二級緩存的效果:將二級緩存啟用,使用不同的SqlSession同一命名空間發(fā)起多次查詢。結果是兩次查詢有一次日志。得出結論:二級緩存生效,一級緩存失效。測試不同SqlSession同一命名空間查詢時,兩次查詢之間穿插更新語句。結果:兩次查詢均執(zhí)行。測試開啟MyBatis二級緩存的臟讀問題,跨命名空間進行操作。得出結論:盡量避免修改其他命名空間的數據。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第2學時:動態(tài)SQL一、知識講解動態(tài)SQL簡述講解:動態(tài)SQL是MyBatis提供的拼接SQL的強大機制。初步講解所有的動態(tài)SQL的標簽(表格見PPT)。<if>元素構造需求:需要判斷name與age屬性是否為空,如果為空則不附加對應的篩選條件。利用<if>元素可以判斷屬性是否為空。(見PPT)數據準備創(chuàng)建目錄創(chuàng)建實體類創(chuàng)建配置文件和數據庫文件創(chuàng)建映射文件與Mapper接口使用<if>標簽來完成“判斷name與age屬性是否為空”的需求,并拋出空屬性篩選的問題。編寫測試類<where>、<set>、<trim>元素<where>元素講解:當<where>元素中存在內容時,自動拼接“where”字符串,并且將<where>元素中第一個“and”字符串刪除;回收問題:單<if>元素不能解決空屬性篩選的問題,在本例中利用<where>元素解決。編寫示例,解決上一節(jié)的空屬性篩選問題(見PPT)。<set>元素講解:<set>元素用于更新操作的SQL拼接,當<set>元素中存在內容時,自動拼接“set”字符串,并且將<set>元素中最后的“,”字符串刪除。編寫示例講解(見PPT)<trim>元素<trim>元素的使用較為復雜,拼裝的靈活性極高。講解<trim>元素的所有的常用屬性<prefix>、<prefixOverride>、<suffix>、<suffixOverride>。編寫示例模擬<set>和<where>元素的功能。<choose>、<when>、<otherwise>元素講解:在開發(fā)中經常遇到,當判斷某一個條件不生效時執(zhí)行另一個操作的情況,此時就需要使用<choose>、<when>、<otherwise>元素。舉例當name和age元素存在時,附加,如果都不存在,附加id的判斷(見PPT)。<foreach>元素講解:<foreach>元素可以循環(huán)拼接SQL。提出需求查詢id為1,2,13的數據。使用<foreach>元素編寫示例實現(xiàn)需求。講解<foreach>元素中的屬性。<bind>元素講解:<bind>元素為命名元素,它可以創(chuàng)建一個變量井將其綁定到上下文中,方便后續(xù)重復使用。編寫代碼講解<bind>元素的作用(見PPT)二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第3學時:MyBatis關聯(lián)映射一、知識講解關聯(lián)關系概述講解:表與表之間的關系可以分為三種,分別為“一對一”,“一對多”和“多對多”。分別為學生講解“一對一”,“一對多”和“多對多”的含義。一對一級聯(lián)查詢創(chuàng)建學生類和卡片類,它們之間的關系是一對一,隨后使用MyBatis編寫完整的查詢過程。示例的編寫目標:查詢出所有的學生類,學生中含有卡片類,因此也需要進行級聯(lián)查詢來查詢卡片類。(見PPT)詳細講解<ResultMap>,以及其中<association>元素的使用。一對多級聯(lián)查詢創(chuàng)建班級類與學生類,一個班級對應多個學生,使用MyBatis編寫完整的查詢過程。示例的編寫目標:直接查詢出所有的班級,每個班級附帶著此班級對應的學生。(見PPT)詳細講解<ResultMap>元素,突出<collection>元素與<association>元素的對比。多對多級聯(lián)查詢創(chuàng)建學生類與教師類,一個學生對應多個教師,一個教師對應多個學生,使用MyBatis編寫完整的查詢過程。示例的編寫目標:直接查詢出所有的學生,每個學生附帶著此學生對應的班級。(見PPT)二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第4學時:MyBatis注解開發(fā)一、知識講解注解開發(fā)簡介講解:使用注解開發(fā)時,無需創(chuàng)建映射文件,直接在Mapper接口文件的方法上通過注解編寫SQL語句即可。講解@Select、@Insert、@Update、@Delete、@Param注解的作用。注解開發(fā)的簡單應用創(chuàng)建示例講解注解的使用(見PPT)。在Mapper接口的方法上添加相應的注解,完成增刪改查操作。講解:在實際開發(fā)中,SQL語句比較復雜時,一般將注解方式與XML方式混合使用,復雜SQL使用XML映射文件編寫,簡單SQL使用注解開發(fā)。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第5-6學時(上機練習)學生根據教材中的操作步驟和教師的演示進行上機練習。主要內容:練習多對多級聯(lián)映射,練習動態(tài)SQL的編寫。檢查學生對相關知識點的掌握情況,監(jiān)督學生完成任務。習題教材第9章習題教學后記課程名稱第10章SpringMVC計劃學時5+27學時內容分析此章介紹了SpringMVC的基本概念和核心組件,通過示例講解了SpringMVC的基本使用,然后講解了SpringMVC的常用注解和Controller中的參數綁定,最后講解了開發(fā)中常用的JSON傳輸方式。教學目標與教學要求【知識目標】理解MVC的思想模式。理解SpringMVC的工作流程。【技能目標】掌握SpringMVC的簡單應用。掌握SpringMVC常用注解的使用方法?!舅颊四繕恕拷虒W重點@RequsetMapping注解、@RequestParam注解、@PathVariable注解、@RequestBody注解、SpringMVC中復雜類型的傳輸。教學方式課堂講解及PPT演示上機演示法與學生練習法教學過程 提出需求,導入學習任務(1)思考SpringMVC的工作流程和業(yè)務的處理方式第1學時:SpringMVC概述和核心組件一、知識講解SpringMVC簡介講解:SpringMVC是Spring框架中的一個模塊,也是一個MVC框架,它提供了一個前端控制器來分發(fā)請求。SpringMVC靈活、高效且配置方便,與其他MVC框架相比,它可以與Spring無縫集成。MVC模式講解:MVC是一種開發(fā)模式,它把整個Web訪問的流程為為四個層級,分別為Controller層、Service層、DAO層(又稱Mapper層)和POJO層。根據模型圖講解MVC的訪問流程(模型圖見PPT)。展示日常Web開發(fā)時的目錄結構(模型圖見PPT)。詳細講解每個目錄的作用(詳細講解見PPT)。SpringMVC核心組件(了解)講解:Spring通過一系列的組件來實現(xiàn)SpringMVC的功能,這些組件包括DispatcherServlet(前端控制器)、HandlerMapping(處理器映射器)、Handler(處理器)、HandlerAdapter(處理器適配器)和ViewResolver(視圖解析器)等。講解所有組件的相關作用(詳細見PPT)。DispatcherServlet負責攔截客戶端的請求并分發(fā)給其他組件。HandlerMapping是一個Map集合,它表示URL和處理類之間的映射。Handler處理器是一個負責處理請求的方法。HandlerAdapter是利用適配器設計模式設計的適配類ViewResolver負責解析ModelAndView對象二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第2學時:SpringMVC簡單應用一、知識講解搭建SpringMVC的環(huán)境,編寫示例,完成一次web訪問。創(chuàng)建應用與目錄。創(chuàng)建應用并引入SpringMVC的JAR包。編寫applicationContext.xml文件,講解基礎配置。編寫springMVC-config.xml文件,講解基礎配置。創(chuàng)建web.xml。編寫StudentController,在代碼中使用的注解可初步介紹。發(fā)布,運行并訪問。二、知識鞏固回顧本章的學習目標,對本節(jié)課的知識點進行總結。講解第一章課后作業(yè)相關部分。第3學時:SpringMVC常用注解一、知識講

溫馨提示

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

最新文檔

評論

0/150

提交評論