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

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論