




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
JavaEE簡(jiǎn)介項(xiàng)目分析與設(shè)計(jì)JavaEE框架技術(shù)簡(jiǎn)介什么是框架技術(shù)JavaEE簡(jiǎn)介與主要技術(shù)JavaEE中開發(fā)模式JavaEE主流開源框架技術(shù):SSH2框架JavaEE主流開源框架技術(shù):SSM框架什么是框架技術(shù)伴隨著軟件開發(fā)技術(shù)的發(fā)展,在多層的軟件開發(fā)項(xiàng)目中,可重用、易擴(kuò)展,而且是經(jīng)過(guò)良好測(cè)試的軟件組件,越來(lái)越為人們所青睞。這意味著人們可以將充裕的時(shí)間用來(lái)分析、構(gòu)建業(yè)務(wù)邏輯的應(yīng)用上,而非繁雜的代碼工程。于是人們將相同類型問(wèn)題的解決途徑進(jìn)行抽象,抽取成一個(gè)應(yīng)用框架,也就是說(shuō)框架是一些經(jīng)過(guò)實(shí)踐證明的、能用來(lái)開發(fā)高效應(yīng)用系統(tǒng)的技術(shù)。JavaEE項(xiàng)目就可以通過(guò)框架的設(shè)計(jì)和運(yùn)用來(lái)達(dá)到控制軟件質(zhì)量提高軟件的生產(chǎn)效率。JavaEE簡(jiǎn)介
JavaEE(JavaPlatform,EnterpriseEdition)是Sun公司推出的企業(yè)級(jí)應(yīng)用程序版本;提供Web服務(wù)、組件模型、管理和通信API;用來(lái)實(shí)現(xiàn)企業(yè)級(jí)的面向服務(wù)體系結(jié)構(gòu)(service-orientedarchitecture,SOA)和Web2.0應(yīng)用程序;可移植、健壯、可伸縮且安全的服務(wù)器端Java應(yīng)用程序。JavaEE規(guī)范定義了一個(gè)完善的應(yīng)用組件技術(shù)框架JavaEE中主要技術(shù)
Servlet
基于請(qǐng)求/響應(yīng)機(jī)制;JSP
基于Servlet技術(shù)的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn);EJB
是一種規(guī)范,定義了一個(gè)可重用的組件框架,用來(lái)實(shí)現(xiàn)分布式的、面向?qū)ο蟮臉I(yè)務(wù)邏輯,能將業(yè)務(wù)邏輯與底層的系統(tǒng)邏輯分開;
JDBC
用于執(zhí)行SQL語(yǔ)句的JavaAPI,由一組用Java語(yǔ)言編寫的類和接口組成;JavaBean基于Java的組件模型,通過(guò)JavaBean可以無(wú)限擴(kuò)充Java程序的功能,通過(guò)JavaBean的組合可以快速的生成新的應(yīng)用程序。JavaEE中主要技術(shù)
RMI用于調(diào)用遠(yuǎn)程對(duì)象上方法,使用序列化方式在客戶端和服務(wù)器端的對(duì)象之間傳遞數(shù)據(jù)。JNDI(JavaNamingandDirectoryInterface)提供從Java平臺(tái)到其他平臺(tái)的統(tǒng)一的無(wú)縫的連接。這個(gè)接口屏蔽了企業(yè)網(wǎng)絡(luò)所使用的各種命名和目錄服務(wù)。JMS(JavaMessageService)提供企業(yè)消息服務(wù),如可靠的消息隊(duì)列、發(fā)布和訂閱通信、以及有關(guān)推拉(Push/Pull)技術(shù)的各個(gè)方面。JPA(JavaPersistenceAPI),JPA通過(guò)JDK5.0注解或XML描述對(duì)象-關(guān)系表的映射關(guān)系,并將運(yùn)行期的實(shí)體對(duì)象持久化到數(shù)據(jù)庫(kù)中。JavaEE主中開發(fā)模式—JSP開發(fā)模式
JavaEE主中開發(fā)模式—MVC模式
MVCMVC是Model-View-Controller的簡(jiǎn)稱,即模型-視圖-控制器;MVC是一種設(shè)計(jì)模式,將應(yīng)用程序的輸入、處理、輸出流程按照Model、View、Controller的方式進(jìn)行分離,并被分成三層——模型層、視圖層、控制層。JavaEE主流框架技術(shù)—SSH2框架
SSH2是struts2+spring+hibernate的一個(gè)集成框架,集成SSH框架的系統(tǒng)從職責(zé)上分為四層:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和域模塊層,以幫助開發(fā)人員在短期內(nèi)搭建結(jié)構(gòu)清晰、可復(fù)用性好、維護(hù)方便的Web應(yīng)用程序。其中使用Struts2作為系統(tǒng)的整體基礎(chǔ)架構(gòu),負(fù)責(zé)MVC的分離,在Struts2框架的模型部分,控制業(yè)務(wù)跳轉(zhuǎn),利用Hibernate框架對(duì)持久層提供支持,Spring做管理,管理struts2和hibernate。JavaEE主流框架技術(shù)—SSH框架
Struts2框架Struts2是在MVC模式上構(gòu)建的一種Web解決方案。Struts2框架由3個(gè)部分組成:核心控制器FilterDispatcher、業(yè)務(wù)控制器和用戶實(shí)現(xiàn)的業(yè)務(wù)邏輯組件。其中FilterDispatcher是核心控制器,用戶需要實(shí)現(xiàn)業(yè)務(wù)控制器和業(yè)務(wù)邏輯組件。JavaEE主流框架技術(shù)—SSH框架
Spring框架Spring是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的一個(gè)開源框架;是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。JavaEE主流框架技術(shù)—SSH框架
Hibernate框架是非常優(yōu)秀、成熟的O/RMapping框架;提供了強(qiáng)大、高性能的Java對(duì)象和關(guān)系數(shù)據(jù)的持久化和查詢功能。Hibernate作為持久層的一項(xiàng)實(shí)現(xiàn)技術(shù),運(yùn)用DAO(DataAccessObject)設(shè)計(jì)模式來(lái)實(shí)現(xiàn)對(duì)象和關(guān)系數(shù)據(jù)庫(kù)之間的映射。實(shí)現(xiàn)了對(duì)JDBC進(jìn)行了輕量級(jí)的對(duì)象封裝,在Java應(yīng)用和關(guān)系數(shù)據(jù)庫(kù)之間建立橋梁,可使用面向?qū)ο蟮木幊趟季S來(lái)操作關(guān)系數(shù)據(jù)庫(kù)。JavaEE主流框架技術(shù)—SSM框架
SSM框架是SpringMVC,Spring和MyBatis框架的整合,是標(biāo)準(zhǔn)的MVC模式,將整個(gè)系統(tǒng)劃分為表現(xiàn)層,controller層,service層,DAO層四層。使用SpringMVC負(fù)責(zé)請(qǐng)求的轉(zhuǎn)發(fā)和視圖管理,Spring實(shí)現(xiàn)業(yè)務(wù)對(duì)象管理,MyBatis作為數(shù)據(jù)對(duì)象的持久化引擎。JavaEE主流框架技術(shù)—SSM框架
MyBatis是一個(gè)優(yōu)秀的持久層框架,它對(duì)jdbc的操作數(shù)據(jù)庫(kù)的過(guò)程進(jìn)行封裝,使開發(fā)者只需要關(guān)注SQL本身,而不需要花費(fèi)精力去處理例如注冊(cè)驅(qū)動(dòng)、創(chuàng)建connection、創(chuàng)建statement、手動(dòng)設(shè)置參數(shù)、結(jié)果集檢索等jdbc繁雜的過(guò)程代碼。MyBatis框架JavaEE主流框架技術(shù)—SSM框架
SpringMVC是一種基于Java的實(shí)現(xiàn)了WebMVC設(shè)計(jì)模式的請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想,將web層進(jìn)行職責(zé)解耦,基于請(qǐng)求驅(qū)動(dòng)指的就是使用請(qǐng)求-響應(yīng)模型,框架的目的就是幫助我們簡(jiǎn)化開發(fā),SpringMVC也是要簡(jiǎn)化我們?nèi)粘eb開發(fā)的。SpringMVC框架謝謝觀看主講人:蔣衛(wèi)祥延遲符搭建JavaEE企業(yè)開發(fā)環(huán)境項(xiàng)目分析與設(shè)計(jì)搭建JavaEE企業(yè)開發(fā)環(huán)境JDK版本的選擇與配置數(shù)據(jù)庫(kù)的選擇Web服務(wù)器的選擇開發(fā)工具的選擇使用開發(fā)工具開發(fā)用戶注冊(cè)模塊JDK的版本選擇與配置選擇JDK1.8及以上版本作為Java開發(fā)環(huán)境JDK版本的選擇安裝與配置打開下載的jdk安裝包,在安裝過(guò)程中可以更改安裝路徑,但是需要記住安裝路徑。打開我的電腦,右鍵->屬性->高級(jí)系統(tǒng)設(shè)置->環(huán)境變量系統(tǒng)變量->新建
變量名:JAVA_HOME
變量值:C:\ProgramFiles\Java\jdk1.8.0_152(以安裝路徑為主)系統(tǒng)變量->新建
變量名:CLASSPATH
變量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;系統(tǒng)變量->編輯
找到Path選項(xiàng):
變量名:Path
變量值:將
%JAVA_HOME%\bin;Web服務(wù)器的選擇選擇Tomcat9作為Web服務(wù)器Web服務(wù)器的選擇Tomcat服務(wù)器優(yōu)點(diǎn)Tomcat是一個(gè)開源的web服務(wù)器;Tomcat運(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載均衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;Tomcat是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。數(shù)據(jù)庫(kù)的選擇選擇Mysql8作為系統(tǒng)的數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的選擇Mysql的優(yōu)點(diǎn)運(yùn)行速度快,MySQL體積小,命令執(zhí)行的速度快。使用成本低。MySQL是開源的,且提供免費(fèi)版本,對(duì)大多數(shù)用戶來(lái)說(shuō)大大降低了使用成本。使用容易。與其他大型數(shù)據(jù)庫(kù)的設(shè)置和管理相比,其復(fù)雜程度較低,易于使用??梢浦残詮?qiáng)。MySQL能夠運(yùn)行與多種系統(tǒng)平臺(tái)上,如Windows,Linux,Unix等。適用更多用戶。MySQL支持最常用的數(shù)據(jù)管理功能,適用于中小型企業(yè)甚至大型網(wǎng)站應(yīng)用。開發(fā)工具的選擇JavaEE企業(yè)級(jí)開發(fā)有很多很多開發(fā)工具,主要包括:EclipseJavaEEIDEMyEclipseNetBeansIntelliJIDEA開發(fā)工具IDEA的優(yōu)點(diǎn)智能化:智能提示、重構(gòu)功能等,可以提高開發(fā)效率。界面友好:界面簡(jiǎn)潔明了,操作方便。插件豐富:支持各種類型的插件,可以滿足各種需求。性能優(yōu)秀:運(yùn)行流暢,反應(yīng)迅速。持續(xù)更新:JetBrains公司不斷更新,功能在不斷完善。IDEA的主要功能代碼編輯:支持語(yǔ)法高亮、自動(dòng)完成、代碼檢查等功能。項(xiàng)目管理:支持Maven、Gradle等工具來(lái)管理項(xiàng)目。調(diào)試:支持調(diào)試Java程序。測(cè)試:支持JUnit、TestNG等測(cè)試框架。代碼重構(gòu):支持重命名、提取方法、提取變量等功能。集成版本控制系統(tǒng):支持Git、SVN等版本控制系統(tǒng)。使用IDEA開發(fā)用戶注冊(cè)模塊用戶注冊(cè)的功能是用戶輸入注冊(cè)信息,查詢用戶是否存在,如果不存則保存到數(shù)據(jù)庫(kù)中,如果已經(jīng)存在則返回。視圖層模型層控制層register.jspregisterSuccess.jspregisterError.jsp
UserInfoModel.java
UserInfoControl.java表1-1用戶注冊(cè)模塊的MVC使用IDEA開發(fā)用戶注冊(cè)模塊創(chuàng)建Web項(xiàng)目:chap1<dependency>
<groupId>javax.servlet</groupId>
<artifactId>
javax.servlet-api
</artifactId>
<version>4.0.1</version></dependency>在pom.xml文件中加入servlet-api依賴使用IDEA開發(fā)用戶注冊(cè)模塊Web服務(wù)器配置使用IDEA開發(fā)用戶注冊(cè)模塊數(shù)據(jù)庫(kù)的連接類增加mysql依賴連接數(shù)據(jù)庫(kù)類:DBCon.java連接方法:ConnectiongetConnection()主要代碼如下:Class.forName("com.mysql.cj.jdbc.Driver");con=DriverManager.getConnection("jdbc:mysql://localhost:3306/db_hbook?characterEncoding=utf8","root","123");<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.23</version></dependency>使用IDEA開發(fā)用戶注冊(cè)模塊用戶注冊(cè)模型端類:UserInfoModel.java用戶注冊(cè)功能:
insert(UserInfouserInfo)方法模型端的設(shè)計(jì)模型端主要代碼public
booleaninsert(UserInfoControlleruserInfo){//保存用戶注冊(cè)信息 boolean
result=false; try{ con=db.getConnection();//數(shù)據(jù)庫(kù)連接 Stringsql="insertintotb_userInfovalues(?,?,?,?)";
PreparedStatementpstmt; pstmt=con.prepareStatement(sql);//……設(shè)置用戶名、密碼、地址
int
i=pstmt.executeUpdate(); if(i>0){//判斷是否插入成功 result=true; } }catch(SQLExceptione){ e.printStackTrace(); } return
result;}使用IDEA開發(fā)用戶注冊(cè)模塊用戶控制端類:UserInfoControl.java控制端的設(shè)計(jì)控制端主要代碼public
classUserInfoControlextendsHttpServlet{public
voiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,
IOException{response.setContentType("text/html;charset=gb2312");PrintWriterout=response.getWriter();
//通過(guò)請(qǐng)求參數(shù)獲取用戶輸入信息:用戶名、密碼、地址信息
TransCodecode=newTransCode();
……//用戶名、密碼、地址編碼轉(zhuǎn)換UserInfouserInfo=newUserInfo();
……//用戶信息對(duì)象設(shè)置用戶名、密碼、地址
UserInfoModelpmodel=newUserInfoModel();
booleanresult=pmodel.insert(userInfo);//保存用戶信息if(result){//保存成功request.getRequestDispatcher("/userInfoSuccess.jsp").forward(request,response);}else{//保存失敗request.getRequestDispatcher("/userInfoError.jsp").forward(request,response);
}}使用IDEA開發(fā)用戶注冊(cè)模塊運(yùn)行結(jié)果謝謝觀看主講人:蔣衛(wèi)祥延遲符需求分析項(xiàng)目分析與設(shè)計(jì)軟件需求分析延遲符什么是需求分析?“需求分析”,是指對(duì)要解決的問(wèn)題進(jìn)行詳細(xì)的分析,弄清楚問(wèn)題的要求,包括需要輸入什么數(shù)據(jù),要得到什么結(jié)果,最后應(yīng)輸出什么。主要工作:深入描述軟件的功能和性能,確定軟件設(shè)計(jì)的限制和軟件同其他系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其他有效性需求。具體包括:確定對(duì)系統(tǒng)的綜合要求分析系統(tǒng)的數(shù)據(jù)要求導(dǎo)出系統(tǒng)的邏輯模型修正系統(tǒng)開發(fā)計(jì)劃軟件需求分析通常對(duì)軟件系統(tǒng)有下述幾方面的綜合要求:功能需求可靠性和可用性需求接口需求逆向需求性能需求出錯(cuò)處理需求約束將來(lái)可能提出的要求確定對(duì)系統(tǒng)的綜合要求軟件需求分析延遲符分析系統(tǒng)的數(shù)據(jù)要求分析系統(tǒng)的數(shù)據(jù)要求,是軟件分析的一個(gè)重要任務(wù),通常采用建立數(shù)據(jù)模型的方法。復(fù)雜的數(shù)據(jù)由許多基本的數(shù)據(jù)元素組成,數(shù)據(jù)結(jié)構(gòu)表示數(shù)據(jù)元素之間的邏輯關(guān)系。利用數(shù)據(jù)字典可以全面地定義數(shù)據(jù),但是數(shù)據(jù)字典不夠直觀。為了提高可理解性,常常利用圖形化工具輔助描述數(shù)據(jù)結(jié)構(gòu)。延遲符通常使用以下幾種方式描述系統(tǒng)的邏輯模型:數(shù)據(jù)流圖E-R圖狀態(tài)轉(zhuǎn)換圖數(shù)據(jù)字典主要的處理算法導(dǎo)出系統(tǒng)的邏輯模型軟件需求分析軟件需求分析延遲符修正系統(tǒng)開發(fā)計(jì)劃在需求分析過(guò)程中,可以準(zhǔn)確估計(jì)系統(tǒng)成本和進(jìn)度,修正以前定制的開發(fā)計(jì)劃軟件需求分析延遲符結(jié)構(gòu)化分析(簡(jiǎn)稱SA)方法是面向數(shù)據(jù)流的需求分析方法,適合于分析大型的數(shù)據(jù)處理系統(tǒng),特別是企事業(yè)管理系統(tǒng)。SA法也是一種建模的活動(dòng),主要是根據(jù)軟件內(nèi)部的數(shù)據(jù)傳遞、變換關(guān)系,自頂向下逐層分解,描繪出滿足功能要求的軟件模型。分解抽象SA基本思想需求分析方法:結(jié)構(gòu)化分析方法軟件需求分析需求分析方法:結(jié)構(gòu)化分析方法分解指復(fù)雜的系統(tǒng)分解成若干小問(wèn)題,然后分別解決。自頂向下、逐層分解。頂層抽象地描述了整個(gè)系統(tǒng),底層具體地畫出了系統(tǒng)的每一個(gè)細(xì)節(jié),而中間層是從抽象到具體的逐層過(guò)渡。SA基本思想抽象分解可以分層進(jìn)行,即先考慮問(wèn)題最本質(zhì)的屬性,暫把細(xì)節(jié)略去,以后再逐層添加細(xì)節(jié),直至涉及到最詳細(xì)的內(nèi)容。軟件需求分析延遲符需求分析方法:結(jié)構(gòu)化分析方法建立當(dāng)前系統(tǒng)的“具體模型”:即將當(dāng)前系統(tǒng)用DFD圖描述出來(lái)抽象出當(dāng)前系統(tǒng)的邏輯模型:分析系統(tǒng)“具體模型”,抽象出其本質(zhì)的因素,排除次要因素,獲得用DFD圖描述的當(dāng)前系統(tǒng)的“邏輯模型”。建立目標(biāo)系統(tǒng)的邏輯模型:分析目標(biāo)系統(tǒng)與當(dāng)前系統(tǒng)邏輯上的差別,從而進(jìn)一步明確目標(biāo)系統(tǒng)“做什么”,建立目標(biāo)系統(tǒng)的“邏輯模型”(修改后的DFD圖)。為了對(duì)目標(biāo)系統(tǒng)作完整的描述,還需要考慮人機(jī)界面和其他一些問(wèn)題。SA步驟軟件需求分析延遲符需求分析方法:結(jié)構(gòu)化分析方法分層的數(shù)據(jù)流圖數(shù)據(jù)詞典描述加工邏輯的結(jié)構(gòu)化語(yǔ)言、判定表或判定樹SA描述工具軟件需求分析延遲符需求分析方法:結(jié)構(gòu)化分析方法SA描述工具數(shù)據(jù)流圖(簡(jiǎn)稱DFD)是描述系統(tǒng)中數(shù)據(jù)流程的圖形工具,標(biāo)識(shí)了一個(gè)系統(tǒng)的邏輯輸入和邏輯輸出,以及把邏輯輸入轉(zhuǎn)換邏輯輸出所需的加工處理。箭頭表示數(shù)據(jù)流,圓或橢圓表示加工。雙杠或者單杠表示數(shù)據(jù)存儲(chǔ),矩形框表示數(shù)據(jù)的源點(diǎn)或終點(diǎn),即外部實(shí)體。軟件需求分析延遲符需求分析方法:結(jié)構(gòu)化分析方法數(shù)據(jù)流是數(shù)據(jù)在系統(tǒng)內(nèi)傳播的路徑,由一組固定的數(shù)據(jù)項(xiàng)組成??蓮募庸ち飨蚣庸?,也可從加工流向文件或從文件流向加工,也可從源點(diǎn)流向加工或從加工流向終點(diǎn)。加工也稱為數(shù)據(jù)處理,它對(duì)數(shù)據(jù)流進(jìn)行某些操作或變換。每個(gè)加工要有名字,簡(jiǎn)明地描述完成什么加工。在分層的數(shù)據(jù)流圖中,加工還應(yīng)有編號(hào)。數(shù)據(jù)存儲(chǔ)指暫時(shí)保存的數(shù)據(jù),可以是數(shù)據(jù)庫(kù)文件或任何形式的數(shù)據(jù)組織。流向數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)流可理解為寫入文件,或查詢文件,從數(shù)據(jù)存儲(chǔ)流出的數(shù)據(jù)可理解為從文件讀數(shù)據(jù)或得到查詢結(jié)果。數(shù)據(jù)源點(diǎn)和終點(diǎn)是軟件系統(tǒng)外部環(huán)境中的實(shí)體(包括人員、組織或其他軟件系統(tǒng))。SA描述工具軟件需求分析延遲符需求分析方法:面向?qū)ο蠓椒嫦驅(qū)ο蠓治龇椒ǎ∣OA),是在一個(gè)系統(tǒng)的開發(fā)過(guò)程中進(jìn)行了系統(tǒng)業(yè)務(wù)調(diào)查以后,按照面向?qū)ο蟮乃枷雭?lái)分析問(wèn)題。OOA與結(jié)構(gòu)化分析區(qū)別:OOA強(qiáng)調(diào)在系統(tǒng)調(diào)查資料的基礎(chǔ)上,針對(duì)OO方法所需要的素材進(jìn)行的歸類分析和整理,而不是對(duì)管理業(yè)務(wù)現(xiàn)狀和方法的分析。OOA模型由5個(gè)層次(主題層、對(duì)象類層、結(jié)構(gòu)層、屬性層和服務(wù)層)和5個(gè)活動(dòng)(標(biāo)識(shí)對(duì)象類、標(biāo)識(shí)結(jié)構(gòu)、定義主題、定義屬性和定義服務(wù))組成。定義了兩種對(duì)象類之間的結(jié)構(gòu):分類結(jié)構(gòu)是一般與特殊的關(guān)系;組裝結(jié)構(gòu)反映了對(duì)象之間的整體與部分的關(guān)系。軟件需求分析延遲符需求分析方法:面向?qū)ο蠓椒∣OA在定義屬性的同時(shí),要識(shí)別實(shí)例連接實(shí)例連接是一個(gè)實(shí)例與另一個(gè)實(shí)例的映射關(guān)系。OOA在定義服務(wù)的同時(shí)要識(shí)別消息連接當(dāng)一個(gè)對(duì)象需要向另一對(duì)象發(fā)送消息時(shí),它們之間就存在消息連接。OOA中的5個(gè)層次和5個(gè)活動(dòng)持續(xù)貫穿在OOD(面向?qū)ο蟮脑O(shè)計(jì))過(guò)程中軟件需求分析延遲符需求分析方法:面向?qū)ο蠓椒á俪橄螅撼橄笤瓌t包括過(guò)程抽象和數(shù)據(jù)抽象;②封裝:把對(duì)象的屬性和服務(wù)結(jié)合為一個(gè)不可分的系統(tǒng)單位,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié);③繼承:特殊類和一般類;④分類:把具有相同屬性和服務(wù)的對(duì)象劃分為一類;⑤聚合:又稱組裝;OOA主要原則⑥關(guān)聯(lián)
:通過(guò)一個(gè)事物聯(lián)想到另外的事物;⑦消息通信:用消息連接表示出對(duì)象之間的動(dòng)態(tài)聯(lián)系;⑧粒度控制:考慮全局時(shí),注意其大的組成部分,暫時(shí)不詳察具體的細(xì)節(jié);考慮某部分的細(xì)節(jié)時(shí)則暫時(shí)撇開其余的部分;⑨行為分析:行為復(fù)雜。軟件需求分析延遲符需求分析方法:面向?qū)ο蠓椒üδ苣P停杭从美P?;?duì)象模型:對(duì)用例模型進(jìn)行分析,把系統(tǒng)分解成互相協(xié)作的分析類,通過(guò)類圖/對(duì)象圖描述對(duì)象/對(duì)象的屬性/對(duì)象間的關(guān)系,是系統(tǒng)的靜態(tài)模型。動(dòng)態(tài)模型描述系統(tǒng)的動(dòng)態(tài)行為,通過(guò)時(shí)序圖/協(xié)作圖描述對(duì)象的交互,以揭示對(duì)象間如何協(xié)作來(lái)完成每個(gè)具體的用例;單個(gè)對(duì)象的狀態(tài)變化/動(dòng)態(tài)行為可以通過(guò)狀態(tài)圖來(lái)表達(dá)。三種分析模型軟件需求分析延遲符需求分析方法:面向?qū)ο蠓椒∣OA基本步驟確定結(jié)構(gòu)確定主題確定屬性確定方法確定對(duì)象和類軟件需求分析延遲符需求分析方法:面向?qū)ο蠓椒ㄓ美龍D:用來(lái)圖示化系統(tǒng)的主事件流程,描述客戶的需求;用例就是軟件的功能模塊,是設(shè)計(jì)系統(tǒng)分析階段的起點(diǎn),設(shè)計(jì)人員根據(jù)客戶的需求來(lái)創(chuàng)建和解釋用例圖,用來(lái)描述軟件應(yīng)具備哪些功能模塊以及這些模塊之間的調(diào)用關(guān)系。用例圖包含:用例參與者用例之間用關(guān)聯(lián)來(lái)連接軟件需求分析延遲符需求分析方法:面向?qū)ο蠓椒ㄓ美菑南到y(tǒng)外部可見的行為,是系統(tǒng)為某一個(gè)或幾個(gè)參與者(Actor)提供的一段完整的服務(wù)。用例之間關(guān)系:都是獨(dú)立、并列的,它們之間并不存在著包含從屬關(guān)系;但為體現(xiàn)一些用例之間的業(yè)務(wù)關(guān)系,提高可維護(hù)性和一致性,用例之間可以抽象出:包含(include)、擴(kuò)展(extend)和泛化(generalization)幾種關(guān)系。軟件需求分析延遲符需求分析方法:面向?qū)ο蠓椒ò琲nclude使用包含(Inclusion)用例來(lái)封裝一組跨越多個(gè)用例的相似動(dòng)作(行為片斷),以便多個(gè)基本用例復(fù)用?;居美刂婆c包含用例的關(guān)系,以及被包含用例的事件流是否會(huì)插入到基本用例的事件流中?;居美梢砸蕾嚢美龍?zhí)行的結(jié)果,但雙方不能訪問(wèn)對(duì)方的屬性。軟件需求分析延遲符需求分析方法:面向?qū)ο蠓椒〝U(kuò)展extends將基本用例中一段相對(duì)獨(dú)立并且可選的動(dòng)作,用擴(kuò)展用例加以封裝,再讓它從基本用例中聲明的擴(kuò)展點(diǎn)上進(jìn)行擴(kuò)展,從而使基本用例行為更簡(jiǎn)練和目標(biāo)更集中。擴(kuò)展用例為基本用例添加新的行為擴(kuò)展用例可以訪問(wèn)基本用例的屬性。軟件需求分析延遲符需求分析方法:面向?qū)ο蠓椒ǚ夯痝eneralization子用例和父用例相似,但表現(xiàn)出更特別的行為;子用例將繼承父用例的所有結(jié)構(gòu)、行為和關(guān)系。子用例可以使用父用例的一段行為,也可以重載它,父用例通常是抽象的。軟件需求分析延遲符需求分析方法:面向?qū)ο蠓椒ㄓ美枋鲆话惆ǎ汉?jiǎn)要描述(說(shuō)明)前置(前提)條件基本事件流其他事件流異常事件流后置(事后)條件等等軟件需求分析延遲符需求分析方法:面向?qū)ο蠓椒ㄓ美幪?hào):例如:系統(tǒng)(QTP)+模塊(JH)+順序(001)=QTPJH001用例名稱用例描述執(zhí)行者過(guò)程描述主過(guò)程描述備選過(guò)程描述業(yè)務(wù)規(guī)則涉及的業(yè)務(wù)實(shí)體前置條件:執(zhí)行用例之前必須存在的系統(tǒng)狀態(tài)。后置條件:用例一執(zhí)行完畢系統(tǒng)可能處于的一組狀態(tài)。用例描述模板軟件需求分析業(yè)務(wù)流程圖:簡(jiǎn)介業(yè)務(wù)流程圖(TFD):用一些規(guī)定的符號(hào)及連線來(lái)表示某個(gè)具體業(yè)務(wù)處理過(guò)程。是一種描述系統(tǒng)內(nèi)各單位、人員之間業(yè)務(wù)關(guān)系、作業(yè)順序和管理信息流向的圖表,利用它可以幫助分析人員找出業(yè)務(wù)流程中的不合理流向,是物理模型。業(yè)務(wù)流程圖的繪制是按照業(yè)務(wù)的實(shí)際處理步驟和過(guò)程進(jìn)行的。業(yè)務(wù)流程圖是一種系統(tǒng)分析人員都懂的共同語(yǔ)言,用來(lái)描述系統(tǒng)組織結(jié)構(gòu)、業(yè)務(wù)流程。軟件需求分析業(yè)務(wù)流程圖:基本符號(hào)及含義軟件需求分析業(yè)務(wù)流程圖:繪制步驟現(xiàn)行系統(tǒng)業(yè)務(wù)流程總結(jié)在畫業(yè)務(wù)流程圖之前,要對(duì)現(xiàn)行系統(tǒng)進(jìn)行詳細(xì)調(diào)查,并寫出現(xiàn)行系統(tǒng)業(yè)務(wù)流程總結(jié)。業(yè)務(wù)流程圖的繪制根據(jù)系統(tǒng)業(yè)務(wù)流程的描述,繪制出系統(tǒng)處理業(yè)務(wù)流程圖。軟件需求分析延遲符業(yè)務(wù)流程圖:作用制作流程圖的過(guò)程是全面了解業(yè)務(wù)處理的過(guò)程,是進(jìn)行系統(tǒng)分析的依據(jù);是系統(tǒng)分析員、管理人員、業(yè)務(wù)操作人員相互交流思想的工具;系統(tǒng)分析員可直接在業(yè)務(wù)流程圖上擬出可實(shí)現(xiàn)計(jì)算機(jī)處理的部分;可分析出業(yè)務(wù)流程的合理性。謝謝觀看主講人:蔣衛(wèi)祥延遲符任務(wù)1.2辦公自動(dòng)化系統(tǒng)需求分析項(xiàng)目分析與設(shè)計(jì)辦公自動(dòng)化系統(tǒng)需求分析延遲符任務(wù)介紹本任務(wù)以分析人事管理模塊為例說(shuō)明系統(tǒng)需求分析過(guò)程,主要包括:分析某高校辦公業(yè)務(wù)需求,經(jīng)過(guò)需求分析和數(shù)據(jù)整理,確認(rèn)高校辦公自動(dòng)化管理系統(tǒng);主要包括人事管理、日程管理、文檔管理、消息傳遞、系統(tǒng)管理、考勤管理、會(huì)議管理、工作流轉(zhuǎn)等幾大模塊。辦公自動(dòng)化系統(tǒng)需求分析實(shí)施步驟1人事管理模塊功能分析主要進(jìn)行機(jī)構(gòu)管理、部門管理、員工管理。2系統(tǒng)非功能需求主要進(jìn)行性能需求分析、安全需求分析。辦公自動(dòng)化系統(tǒng)需求分析實(shí)施步驟包含:展示機(jī)構(gòu)信息,可以添加、修改、刪除機(jī)構(gòu)。1人事管理模塊功能分析(1)機(jī)構(gòu)管理機(jī)構(gòu)管理用View展示機(jī)構(gòu)信息,可以添加、修改、刪除機(jī)構(gòu)。在添加機(jī)構(gòu)時(shí),需要輸入機(jī)構(gòu)名稱及機(jī)構(gòu)簡(jiǎn)稱。辦公自動(dòng)化系統(tǒng)需求分析實(shí)施步驟展示部門信息,可以添加、修改、刪除部門。部門從屬于機(jī)構(gòu),一個(gè)機(jī)構(gòu)可以有多個(gè)部門。1人事管理模塊功能分析(2)部門管理部門管理用View展示部門信息,可以添加、修改、刪除部門;部門從屬于機(jī)構(gòu),一個(gè)機(jī)構(gòu)可以有多個(gè)部門;在添加部門時(shí),需要輸入信息。功能描述辦公自動(dòng)化系統(tǒng)需求分析實(shí)施步驟展示員工信息,可以添加、修改、刪除員工,并可查看員工詳情。1人事管理模塊功能分析(3)員工管理用View展示員工信息,可以添加、修改、刪除員工,并可查看員工詳情;在添加員工時(shí)需要輸入的信息及相應(yīng)的限制。辦公自動(dòng)化系統(tǒng)需求分析延遲符實(shí)施步驟精度要按照嚴(yán)格的數(shù)據(jù)格式輸入,否則系統(tǒng)不給予響應(yīng)進(jìn)行處理;查詢時(shí)要保證查全率,所有相應(yīng)域包含查詢關(guān)鍵字的記錄都能查到;本系統(tǒng)采用了兩種方法進(jìn)行查詢:直接查詢和模糊查詢。時(shí)間特性要求響應(yīng)速度:?jiǎn)蝹€(gè)用戶點(diǎn)瀏覽網(wǎng)頁(yè)響應(yīng)時(shí)間小于1秒。商品搜索響應(yīng)時(shí)間小于2秒。100人同時(shí)在線,瀏覽操作響應(yīng)時(shí)間小于2秒,商品搜索響應(yīng)時(shí)間小于5秒。2系統(tǒng)非功能需求(1)性能需求分析辦公自動(dòng)化系統(tǒng)需求分析實(shí)施步驟本系統(tǒng)的系統(tǒng)架構(gòu),以及權(quán)限機(jī)制可以保證系統(tǒng)的安全性。系統(tǒng)架構(gòu):本系統(tǒng)采用B/S模型,從而使服務(wù)器數(shù)據(jù)源與客戶端分離,保證了數(shù)據(jù)的物理獨(dú)立性;用戶權(quán)限機(jī)制:通過(guò)角色的定義管理實(shí)現(xiàn),通過(guò)定義某些角色能進(jìn)行的操作權(quán)限,和定義用戶擁有的角色,限定用戶的操作權(quán)限,實(shí)現(xiàn)對(duì)用戶的授權(quán)。2系統(tǒng)非功能需求(2)安全需求分析辦公自動(dòng)化系統(tǒng)需求分析延遲符應(yīng)用面向?qū)ο蟮男枨蠓治龇椒ㄅcUML用例圖分析學(xué)工管理系統(tǒng)的功能需求分析與非功能需求分析,并編寫系統(tǒng)需求分析說(shuō)明書。拓展訓(xùn)練謝謝觀看主講人:蔣衛(wèi)祥延遲符系統(tǒng)設(shè)計(jì)項(xiàng)目分析與設(shè)計(jì)系統(tǒng)設(shè)計(jì)延遲符一軟件設(shè)計(jì)系統(tǒng)設(shè)計(jì)是新系統(tǒng)的物理設(shè)計(jì)階段。根據(jù)系統(tǒng)需求分析階段所確定的新系統(tǒng)的邏輯模型、功能要求,在用戶提供的環(huán)境條件下,設(shè)計(jì)出一個(gè)能在計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境上實(shí)施的方案,即建立新系統(tǒng)的物理模型。主要目的:明確軟件系統(tǒng)“如何做”;主要任務(wù):設(shè)計(jì)軟件系統(tǒng)的模塊層次結(jié)構(gòu),設(shè)計(jì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)以及設(shè)計(jì)模塊的控制流程。分兩個(gè)步驟:概要設(shè)計(jì):解決軟件系統(tǒng)的模塊劃分和模塊的層次結(jié)構(gòu)以及數(shù)據(jù)庫(kù)設(shè)計(jì);詳細(xì)設(shè)計(jì):解決每個(gè)模塊的控制流程,內(nèi)部算法和數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)。完成概要設(shè)計(jì)說(shuō)明書和詳細(xì)設(shè)計(jì)說(shuō)明書,也可合并為設(shè)計(jì)說(shuō)明書。系統(tǒng)設(shè)計(jì)主要內(nèi)容包括:確定設(shè)計(jì)方針和方法;將系統(tǒng)分解為若干子系統(tǒng)、確定各子系統(tǒng)的目標(biāo)、功能及其相互關(guān)系;確定對(duì)子系統(tǒng)的管理體制和控制方式;確定對(duì)各子系統(tǒng)進(jìn)行技術(shù)設(shè)計(jì)和評(píng)價(jià);確定對(duì)全系統(tǒng)進(jìn)行技術(shù)設(shè)計(jì)和評(píng)價(jià)等。一軟件設(shè)計(jì)系統(tǒng)設(shè)計(jì)延遲符二總體設(shè)計(jì)總體設(shè)計(jì)的主要任務(wù):把需求分析得到的DFD轉(zhuǎn)換為軟件結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)。設(shè)計(jì)軟件結(jié)構(gòu)的具體任務(wù)是:將一個(gè)復(fù)雜系統(tǒng)按功能進(jìn)行模塊劃分、建立模塊的層次結(jié)構(gòu)及調(diào)用關(guān)系、確定模塊間的接口及人機(jī)界面等。數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)包括:數(shù)據(jù)特征的描述、確定數(shù)據(jù)的結(jié)構(gòu)特性、以及數(shù)據(jù)庫(kù)的設(shè)計(jì)。系統(tǒng)設(shè)計(jì)二總體設(shè)計(jì)總體設(shè)計(jì)基本過(guò)程包括三個(gè)方面的設(shè)計(jì):首先是系統(tǒng)構(gòu)架設(shè)計(jì),用于定義組成系統(tǒng)的子系統(tǒng),以及對(duì)子系統(tǒng)的控制、子系統(tǒng)之間的通信和數(shù)據(jù)環(huán)境等;然后是軟件結(jié)構(gòu)的設(shè)計(jì),用于定義構(gòu)造子系統(tǒng)的功能模塊、模塊接口、模塊之間的調(diào)用與返回關(guān)系。最后是數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),包括數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫(kù)結(jié)構(gòu)等。系統(tǒng)設(shè)計(jì)二總體設(shè)計(jì)總體設(shè)計(jì)要求:建立在需求分析基礎(chǔ)之上,軟件需求文檔是軟件概要設(shè)計(jì)的前提條件??傮w設(shè)計(jì)階段的任務(wù)主要有以下幾個(gè)方面:制定規(guī)范;系統(tǒng)構(gòu)架設(shè)計(jì);軟件結(jié)構(gòu)設(shè)計(jì);公共數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì);安全性設(shè)計(jì)、故障處理設(shè)計(jì)、可維護(hù)性設(shè)計(jì);編寫文檔等。系統(tǒng)設(shè)計(jì)延遲符三數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì):是指對(duì)于一個(gè)給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫(kù)模式,建立數(shù)據(jù)庫(kù)及其應(yīng)用系統(tǒng),使之能夠有效地存儲(chǔ)數(shù)據(jù),滿足各種用戶的應(yīng)用需求(信息要求和處理要求)。數(shù)據(jù)庫(kù)設(shè)計(jì)基本步驟:需求分析階段概念結(jié)構(gòu)設(shè)計(jì)階段邏輯結(jié)構(gòu)設(shè)計(jì)階段數(shù)據(jù)庫(kù)物理設(shè)計(jì)階段數(shù)據(jù)庫(kù)實(shí)施階段系統(tǒng)設(shè)計(jì)三數(shù)據(jù)庫(kù)設(shè)計(jì)需求分析階段需求收集和分析,結(jié)果得到數(shù)據(jù)字典描述的數(shù)據(jù)需求和數(shù)據(jù)流圖描述的處理需求。需求分析的重點(diǎn)是調(diào)查、收集與分析用戶在數(shù)據(jù)管理中的信息要求、處理要求、安全性與完整性要求。系統(tǒng)設(shè)計(jì)三數(shù)據(jù)庫(kù)設(shè)計(jì)通過(guò)對(duì)用戶需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于具體DBMS的概念模型,可以用E-R圖表示。概念結(jié)構(gòu)設(shè)計(jì)階段系統(tǒng)設(shè)計(jì)延遲符三數(shù)據(jù)庫(kù)設(shè)計(jì)將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型(例如關(guān)系模型),并對(duì)其進(jìn)行優(yōu)化。設(shè)計(jì)邏輯結(jié)構(gòu)應(yīng)該選擇最適于描述與表達(dá)相應(yīng)概念結(jié)構(gòu)的數(shù)據(jù)模型,然后選擇最合適的DBMS。E-R圖轉(zhuǎn)換為關(guān)系模型實(shí)際上就是要將實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式。邏輯結(jié)構(gòu)設(shè)計(jì)階段系統(tǒng)設(shè)計(jì)三數(shù)據(jù)庫(kù)設(shè)計(jì)為邏輯數(shù)據(jù)模型選取一個(gè)最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(包括存儲(chǔ)結(jié)構(gòu)和存取方法)。根據(jù)DBMS特點(diǎn)和處理的需要,進(jìn)行物理存儲(chǔ)安排,設(shè)計(jì)索引,形成數(shù)據(jù)庫(kù)內(nèi)模式。數(shù)據(jù)庫(kù)物理設(shè)計(jì)階段系統(tǒng)設(shè)計(jì)三數(shù)據(jù)庫(kù)設(shè)計(jì)運(yùn)用DBMS提供的數(shù)據(jù)語(yǔ)言(例如SQL)及其宿主語(yǔ)言(例如C),根據(jù)邏輯設(shè)計(jì)和物理設(shè)計(jì)的結(jié)果建立數(shù)據(jù)庫(kù),編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫(kù),并進(jìn)行試運(yùn)行。數(shù)據(jù)庫(kù)實(shí)施主要包括以下工作:用DDL定義數(shù)據(jù)庫(kù)結(jié)構(gòu);組織數(shù)據(jù)入庫(kù);編制與調(diào)試應(yīng)用程序;數(shù)據(jù)庫(kù)試運(yùn)行。數(shù)據(jù)庫(kù)實(shí)施階段謝謝觀看主講人:蔣衛(wèi)祥延遲符任務(wù)1.3辦公自動(dòng)化系統(tǒng)設(shè)計(jì)項(xiàng)目分析與設(shè)計(jì)辦公自動(dòng)化系統(tǒng)設(shè)計(jì)延遲符任務(wù)介紹本任務(wù)分析高校辦公自動(dòng)化管理系統(tǒng)的軟件設(shè)計(jì),主要包括:系統(tǒng)的總體結(jié)構(gòu)設(shè)計(jì);系統(tǒng)的架構(gòu)設(shè)計(jì);系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì);系統(tǒng)的詳細(xì)設(shè)計(jì)。辦公自動(dòng)化系統(tǒng)設(shè)計(jì)實(shí)施步驟辦公自動(dòng)化系統(tǒng)設(shè)計(jì)實(shí)施步驟辦公自動(dòng)化系統(tǒng)設(shè)計(jì)實(shí)施步驟高校辦公自動(dòng)化管理系統(tǒng):采用基于Web的業(yè)務(wù)應(yīng)用系統(tǒng),系統(tǒng)應(yīng)用成熟穩(wěn)定的JavaEE(SSM)框架技術(shù)。應(yīng)用SSM框架技術(shù)將系統(tǒng)分為三個(gè)層次:表示層、業(yè)務(wù)層和持久層。分層結(jié)構(gòu)將用戶界面、業(yè)務(wù)邏輯和數(shù)據(jù)進(jìn)行了分離,實(shí)現(xiàn)了系統(tǒng)內(nèi)部松耦合,以靈活、快速地響應(yīng)業(yè)務(wù)需求的變化。2系統(tǒng)架構(gòu)設(shè)計(jì)辦公自動(dòng)化系統(tǒng)設(shè)計(jì)實(shí)施步驟2系統(tǒng)架構(gòu)設(shè)計(jì)辦公自動(dòng)化系統(tǒng)設(shè)計(jì)延遲符實(shí)施步驟本任務(wù)使用工具PowerDesigner設(shè)計(jì)系統(tǒng)的數(shù)據(jù)庫(kù),系統(tǒng)共有12張表,其中包括:權(quán)限相關(guān)表:用戶表、權(quán)限表、角色表、權(quán)限角色表;文檔相關(guān)表:文件夾表、文件表;部門相關(guān)表:機(jī)構(gòu)表、部門表;工作流程相關(guān)表:申請(qǐng)表、簽到表;日志相關(guān)表:登錄日志表;個(gè)人信息相關(guān)表:?jiǎn)T工檔案表。3數(shù)據(jù)庫(kù)設(shè)計(jì)辦公自動(dòng)化系統(tǒng)設(shè)計(jì)實(shí)施步驟辦公自動(dòng)化系統(tǒng)設(shè)計(jì)實(shí)施步驟辦公自動(dòng)化系統(tǒng)設(shè)計(jì)實(shí)施步驟辦公自動(dòng)化系統(tǒng)設(shè)計(jì)實(shí)施步驟辦公自動(dòng)化系統(tǒng)設(shè)計(jì)實(shí)施步驟辦公自動(dòng)化系統(tǒng)設(shè)計(jì)實(shí)施步驟辦公自動(dòng)化系統(tǒng)設(shè)計(jì)實(shí)施步驟辦公自動(dòng)化系統(tǒng)設(shè)計(jì)延遲符設(shè)計(jì)學(xué)工管理系統(tǒng)的功能結(jié)構(gòu)、總體架構(gòu)、數(shù)據(jù)庫(kù),分析其中一個(gè)子模塊的實(shí)現(xiàn)步驟。拓展訓(xùn)練謝謝觀看延遲符Mybatis框架簡(jiǎn)介與運(yùn)行原理MyBatis入門與配置
JavaEE框架技術(shù)簡(jiǎn)介ORM與持久化Mybatis簡(jiǎn)介Mybatis運(yùn)行原理ORM與持久化數(shù)據(jù)持久化一般指將內(nèi)存中的數(shù)據(jù)或?qū)ο蟠鎯?chǔ)到可長(zhǎng)期保存的某種介質(zhì)上,以使其存活時(shí)間比創(chuàng)建該對(duì)象的進(jìn)程時(shí)間要長(zhǎng)。在對(duì)數(shù)據(jù)或?qū)ο蟪志没?,可以重新獲取并能保證在沒(méi)有對(duì)其進(jìn)行任何改動(dòng)的情況下,與持久化之前的一樣。一般持久化的實(shí)現(xiàn)通過(guò)各種關(guān)系數(shù)據(jù)庫(kù)來(lái)完成。持久層就是專門負(fù)責(zé)持久化工作的邏輯層,由它統(tǒng)一與數(shù)據(jù)庫(kù)層打交道。持久層在數(shù)據(jù)存儲(chǔ)器中負(fù)責(zé)存儲(chǔ)或獲取數(shù)據(jù)的一組類和組件,持久層必須包括一個(gè)業(yè)務(wù)領(lǐng)域?qū)嶓w的模型,在持久層中封裝對(duì)數(shù)據(jù)庫(kù)訪問(wèn)的細(xì)節(jié),向業(yè)務(wù)邏輯公開接口。ORM與持久化對(duì)象-關(guān)系映射(Object/RelationMapping,ORM)是隨著面向?qū)ο蟮能浖椒òl(fā)展而產(chǎn)生的,是為了解決面向?qū)ο笈c關(guān)系數(shù)據(jù)庫(kù)存在的互不匹配現(xiàn)象而產(chǎn)生的技術(shù)。對(duì)象和關(guān)系數(shù)據(jù)是業(yè)務(wù)實(shí)體的兩種表現(xiàn)形式,業(yè)務(wù)實(shí)體在內(nèi)存中表現(xiàn)為對(duì)象,在數(shù)據(jù)庫(kù)中表現(xiàn)為關(guān)系數(shù)據(jù)。ORM通過(guò)使用描述對(duì)象和數(shù)據(jù)庫(kù)之間映射的元數(shù)據(jù),將程序中的對(duì)象自動(dòng)持久化到關(guān)系數(shù)據(jù)庫(kù)中。本質(zhì)上就是將數(shù)據(jù)表映射為對(duì)象類,從一種形式轉(zhuǎn)換到另外一種形式。使用ORM技術(shù),將在數(shù)據(jù)庫(kù)中直接進(jìn)行的原始操作演變?yōu)閷?duì)類的屬性和方法的操作,而間接更改數(shù)據(jù)表的數(shù)據(jù)。
如今流行的ORM產(chǎn)品很多,如:ApacheOJB、MyBatis、Cayenne、Hibernate等,MyBatis作為輕量級(jí)ORM模型,對(duì)面向?qū)ο筇匦缘闹С址浅M陚?,完美的?shí)現(xiàn)了對(duì)象模型和關(guān)系模型間的轉(zhuǎn)換,逐步確立了在JavaORM架構(gòu)中領(lǐng)導(dǎo)地位。Mybatis簡(jiǎn)介MyBatis本是apache的一個(gè)開源項(xiàng)目iBatis,2010年這個(gè)項(xiàng)目由apachesoftwarefoundation遷移到了googlecode,并且改名為MyBatis。BATIS一詞來(lái)源于“internet”和“abatis”的組合,是一個(gè)基于Java的持久層框架。MyBatis是一款優(yōu)秀的持久層框架,它支持自定義SQL、存儲(chǔ)過(guò)程以及高級(jí)映射。MyBatis免除了幾乎所有的JDBC代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。MyBatis可以通過(guò)簡(jiǎn)單的XML或注解來(lái)配置和映射原始類型、接口和JavaPOJO(PlainOldJavaObjects,普通老式Java對(duì)象)為數(shù)據(jù)庫(kù)中的記錄。MyBatis的優(yōu)點(diǎn)如下:MyBatis是一個(gè)“半成品”的“ORM”框架。作用于DAO(DataAccessObject)層。
和Hibernate相比,他是一個(gè)輕量級(jí)的選手。有著靈活的SQL的操作。
和JDBC相比,他實(shí)現(xiàn)了SQL和代碼的分離??芍赜?。
Mybatis框架運(yùn)行原理-功能架構(gòu)
Mybatis框架運(yùn)行原理-功能架構(gòu)MyBatis的功能架構(gòu)分為三個(gè)層次:
(1)API接口層:提供給外部使用的接口API,開發(fā)人員通過(guò)這些本地API來(lái)操縱數(shù)據(jù)庫(kù)。接口層一接收到調(diào)用請(qǐng)求就會(huì)調(diào)用數(shù)據(jù)處理層來(lái)完成具體的數(shù)據(jù)處理。(2)數(shù)據(jù)處理層:負(fù)責(zé)具體的SQL查找、SQL解析、SQL執(zhí)行和執(zhí)行結(jié)果映射處理等。它主要的目的是根據(jù)調(diào)用的請(qǐng)求完成一次數(shù)據(jù)庫(kù)操作。(3)基礎(chǔ)支撐層:負(fù)責(zé)最基礎(chǔ)的功能支撐,包括連接管理、事務(wù)管理、配置加載和緩存處理,這些都是共用的東西,將他們抽取出來(lái)作為最基礎(chǔ)的組件。為上層的數(shù)據(jù)處理層提供最基礎(chǔ)的支撐。
Mybatis框架運(yùn)行原理-運(yùn)行原理
(1)讀取MyBatis的配置文件。mybatis-config.xml為MyBatis的全局配置文件,用于配置數(shù)據(jù)庫(kù)連接信息。(2)加載映射文件。映射文件即SQL映射文件,該文件中配置了操作數(shù)據(jù)庫(kù)的SQL語(yǔ)句,需要在MyBatis配置文件MyBatis-config.xml中加載。MyBatis-config.xml文件可以加載多個(gè)映射文件,每個(gè)文件對(duì)應(yīng)數(shù)據(jù)庫(kù)中的一張表。(3)構(gòu)造會(huì)話工廠。通過(guò)MyBatis的環(huán)境配置信息構(gòu)建會(huì)話工廠SqlSessionFactory。(4)創(chuàng)建會(huì)話對(duì)象。由會(huì)話工廠創(chuàng)建SqlSession對(duì)象,該對(duì)象中包含了執(zhí)行SQL語(yǔ)句的所有方法。(5)Executor執(zhí)行器。MyBatis底層定義了一個(gè)Executor接口來(lái)操作數(shù)據(jù)庫(kù),它將根據(jù)SqlSession傳遞的參數(shù)動(dòng)態(tài)地生成需要執(zhí)行的SQL語(yǔ)句,同時(shí)負(fù)責(zé)緩存的維護(hù)。(6)MappedStatement對(duì)象。在Executor接口的執(zhí)行方法中有一個(gè)MappedStatement類型的參數(shù),該參數(shù)是對(duì)映射信息的封裝,用于存儲(chǔ)要映射的SQL語(yǔ)句的id、參數(shù)等信息。(7)輸入?yún)?shù)映射。輸入?yún)?shù)類型可以是Map、List等集合類型,也可以是基本數(shù)據(jù)類型和POJO類型。輸入?yún)?shù)映射過(guò)程類似于JDBC對(duì)preparedStatement對(duì)象設(shè)置參數(shù)的過(guò)程。(8)輸出結(jié)果映射。輸出結(jié)果類型可以是Map、List等集合類型,也可以是基本數(shù)據(jù)類型和POJO類型。輸出結(jié)果映射過(guò)程類似于JDBC對(duì)結(jié)果集的解析過(guò)程。謝謝觀看主講人:崔浩延遲符搭建Mybatis開發(fā)環(huán)境MyBatis入門與配置搭建Mybatis開發(fā)環(huán)境創(chuàng)建項(xiàng)目配置Mybatis開發(fā)環(huán)境創(chuàng)建項(xiàng)目文件->新建->項(xiàng)目,構(gòu)建系統(tǒng)處選擇Maven,點(diǎn)開高級(jí)設(shè)置,可以修改組ID和工件ID本節(jié)任務(wù)實(shí)現(xiàn)在IDEA2022版中搭建Mybtais環(huán)境,MyBatis版本為3.5.15,MySQL數(shù)據(jù)庫(kù)為8,Java版本為1.8。為保證項(xiàng)目可以正常運(yùn)行,要先配置maven。創(chuàng)建項(xiàng)目創(chuàng)建成功后,打開項(xiàng)目文件,如圖配置Mybatis環(huán)境在pom.xml文件中添加依賴<!--MyBatis--><dependency><groupId>org.MyBatis</groupId><artifactId>MyBatis</artifactId><version>3.5.11</version></dependency><!--mysql驅(qū)動(dòng)--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.31</version></dependency>配置Mybatis環(huán)境(2)創(chuàng)建XML核心配置文件MyBatis-config.xml<configuration><environmentsdefault="development"><environmentid="development"><transactionManagertype="JDBC"/><dataSourcetype="POOLED"><!--獲取數(shù)據(jù)庫(kù)連接信息--><propertyname="driver"value="com.mysql.cj.jdbc.Driver"/><propertyname="url"value="jdbc:mysql://localhost:3306/db_hbook?useSSl=true"/><propertyname="username"value="root"/><propertyname="password"value="123"/></dataSource></environment></environments>
<!--加載sql映射文件--><mappers>
<mapperresource="cn/js/ccit/mapper/UserMapper.xml"/></mappers></configuration>在resource文件夾下創(chuàng)建文件:myBatis-config.xml,文件后綴一定要為.xml。配置Mybatis環(huán)境(3)創(chuàng)建用戶表CREATETABLE`tb_user`(`uid`int(11)NOTNULLAUTO_INCREMENT,`uname`varchar(255)CHARACTERSETutf8mb4COLLATEutf8mb4_general_ciNULLDEFAULTNULL,`uage`int(11)NULLDEFAULTNULL,PRIMARYKEY(`uid`)USINGBTREE)ENGINE=InnoDBAUTO_INCREMENT=5CHARACTERSET=utf8mb4COLLATE=utf8mb4_general_ciROW_FORMAT=Compact;在數(shù)據(jù)庫(kù)中,創(chuàng)建用戶表:tb_user,具體代碼如下:配置Mybatis環(huán)境(4)創(chuàng)建用戶類@DatapublicclassUser{privateintuid;//用戶idprivateStringuname;//用戶姓名privateintuage;//用戶年齡}配置Mybatis環(huán)境(5)編寫sql映射文件<mappernamespace="cn.js.ccit.mapper.UserMapper"><!--id:每一個(gè)sql語(yǔ)句的唯一標(biāo)識(shí),即外部通過(guò)id來(lái)調(diào)用語(yǔ)句--><!--resultType:返回的結(jié)果類型,即定義的POJO類--><selectid="selectAll"resultType="cn.js.ccit.pojo.User">select*fromtb_user</select></mapper>在cn.js.ccit.mapper包下創(chuàng)建UserMapper.xml文件。<select>標(biāo)簽是用于查詢語(yǔ)句,且標(biāo)簽內(nèi)直接寫sql查詢語(yǔ)句,該語(yǔ)句查詢user表中所有信息?!咀ⅰ浚簉esultType中填寫類型時(shí)要需要加上類所在的包。配置Mybatis環(huán)境(6)測(cè)試publicclassUserTest{@TestpublicvoidselectAllTest(){//1.加載MyBatis的核心配置文件a,獲取SqlSessionFactory對(duì)象Stringresource="myBatis-config.xml";InputStreaminputStream=null;try{inputStream=Resources.getResourceAsStream(resource);SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(inputStream);//2.獲取SqlSession對(duì)象,執(zhí)行sql語(yǔ)句SqlSessionsqlSession=sqlSessionFactory.openSession();//3.執(zhí)行sql語(yǔ)句List<User>users=sqlSession.selectList("cn.js.ccit.mapper.UserMapper.selectAll");System.out.println(users);//4.釋放資源sqlSession.close();}catch(Exceptione){e.printStackTrace();}}}創(chuàng)建一個(gè)測(cè)試類UserTest.java,UserTest類通過(guò)SqlSessionFactory、SqlSession等類執(zhí)行sql語(yǔ)句。配置Mybatis環(huán)境運(yùn)行成功界面謝謝觀看主講人:崔浩延遲符SqlSessionFactory與SqlSessionMyBatis入門與配置SqlSessionFactorySqlSession延遲符MyBatis的核心對(duì)象延遲符SqlSessionFactory對(duì)象SqlSessionFactory是單個(gè)數(shù)據(jù)庫(kù)映射關(guān)系經(jīng)過(guò)編譯后的內(nèi)存鏡像,其主要作用是創(chuàng)建SqlSession。SqlSessionFactory是一個(gè)接口,其實(shí)例可以通過(guò)SqlSessionFactoryBuilder對(duì)象來(lái)構(gòu)建。SqlSessionFactoryBuilder可以通過(guò)XML配置文件或一個(gè)預(yù)先定義好的Configuration實(shí)例構(gòu)建出SqlSessionFactory的實(shí)例。什么是SqlSessionFactory?延遲符SqlSessionFactory對(duì)象(1)InputStreaminputStream=Resources.getResourceAsStream("mybatis-config.xml");(2)SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(inputStream);構(gòu)建SqlSessionFactory
通過(guò)XML配置文件創(chuàng)建:使用
MyBatis的配置文件(通常是
MyBatis-config.xml),在其中配置數(shù)據(jù)源、映射文件等信息,然后通過(guò)SqlSessionFactoryBuilder類的build()方法創(chuàng)建SqlSessionFactory實(shí)例。通過(guò)Java代碼創(chuàng)建:通過(guò)程序化的方式,直接在代碼中配置數(shù)據(jù)源、映射信息等,然后調(diào)用SqlSessionFactoryBuilder類的build()方法創(chuàng)建SqlSessionFactory實(shí)例。延遲符SqlSessionFactory對(duì)象-功能和作用
數(shù)據(jù)庫(kù)會(huì)話管理:SqlSessionFactory負(fù)責(zé)創(chuàng)建SqlSession對(duì)象,SqlSession對(duì)象是與數(shù)據(jù)庫(kù)交互的主要入口,它提供了執(zhí)行SQL語(yǔ)句、獲取映射器(Mapper)等功能。線程安全性:通常情況下,SqlSessionFactory是一個(gè)單例對(duì)象,它的創(chuàng)建成本較高,因此通常會(huì)在應(yīng)用程序啟動(dòng)時(shí)被創(chuàng)建,并在整個(gè)應(yīng)用程序生命周期中被共享和重復(fù)使用。配置加載:SqlSessionFactory可以從配置文件中加載數(shù)據(jù)源、映射文件等配置信息,從而正確地配置數(shù)據(jù)庫(kù)連接和SQL映射。延遲符SqlSessionFactory對(duì)象-生命周期管理SqlSessionFactory的生命周期通常與應(yīng)用程序的生命周期相同,它在應(yīng)用程序啟動(dòng)時(shí)被創(chuàng)建,隨著應(yīng)用程序的關(guān)閉而銷毀。因此,在應(yīng)用程序啟動(dòng)時(shí)創(chuàng)建SqlSessionFactory實(shí)例,然后通過(guò)整個(gè)應(yīng)用程序共享它是一個(gè)常見的做法。示例代碼如下。SqlSessionFactoryStringresource="MyBatis-config.xml";InputStreaminputStream=Resources.getResourceAsStream(resource);SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(inputStream);
SqlSessionFactory是
MyBatis中的核心接口之一,它提供了創(chuàng)建SqlSession對(duì)象的功能,是
MyBatis與數(shù)據(jù)庫(kù)之間的橋梁。了解SqlSessionFactory的使用方法和生命周期管理對(duì)于
MyBatis的正確使用至關(guān)重要。延遲符SqlSession對(duì)象SqlSession是應(yīng)用程序與持久層之間執(zhí)行交互操作的一個(gè)單線程對(duì)象,其主要作用是執(zhí)行持久化操作。什么是SqlSession?一個(gè)SqlSession對(duì)象對(duì)應(yīng)一個(gè)連接資源的啟用,以對(duì)象創(chuàng)建開始,至對(duì)象關(guān)閉結(jié)束。SqlSession是線程不安全的,使用后要及時(shí)關(guān)閉。延遲符SqlSession對(duì)象SqlSessionsqlSession=SqlSessionFactory.openSession();構(gòu)建SqlSessiontry{ //持久化相關(guān)操作}finally{ sqlSession.close();}關(guān)閉SqlSession延遲符SqlSession對(duì)象查詢方法:<T>TselectOne(Stringstatement);<T>TselectOne(Stringstatement,Objectparameter);<E>List<E>selectList(Stringstatement);<E>List<E>selectList(Stringstatement,Objectparameter);<E>List<E>selectList(Stringstatement,Objectparameter,RowBoundsrowBounds);voidselect(Stringstatement,Objectparameter,ResultHandlerhandler);延遲符SqlSession對(duì)象插入、更新和刪除方法:intinsert(Stringstatement);intinsert(Stringstatement,Objectparameter);intupdate(Stringstatement);intupdate(Stringstatement,Objectparameter);intdelete(Stringstatement);intdelete(Stringstatement,Objectparameter);延遲符SqlSession對(duì)象其他方法:voidcommit();提交事務(wù)的方法。voidrollback();回滾事務(wù)的方法。voidclose();關(guān)閉SqlSession對(duì)象。<T>TgetMapper(Class<T>type);返回Mapper接口的代理對(duì)象。ConnectiongetConnection();獲取JDBC數(shù)據(jù)庫(kù)連接對(duì)象的方法。謝謝觀看主講人:崔浩延遲符任務(wù)2.2角色管理MyBatis入門與配置角色管理延遲符
本任務(wù)主要功能是完成角色信息的添加、刪除、修改與顯示。本任務(wù)以角色修改說(shuō)明角色管理的設(shè)計(jì)過(guò)程,修改角色的開發(fā)分為五個(gè)步驟:視圖層JSP設(shè)計(jì)、實(shí)體層、Mapper接口、Mapper映射文件、控制層。角色管理-視圖層JSP設(shè)計(jì)修改角色視圖層需要設(shè)計(jì)兩個(gè)頁(yè)面:updateRole.jsp、showAllRole.jsp。
修改角色頁(yè)面角色列表顯示頁(yè)面這里不再展示具體實(shí)現(xiàn)代碼,自行實(shí)現(xiàn)即可。角色管理-實(shí)體層角色管理子模塊涉及到的實(shí)體是角色實(shí)體類。@DatapublicclassRoleimplementsjava.io.Serializable{ privateintid; privateStringroleName;//角色名稱 privateStringroleDesc;//角色描述}角色管理-Mapper接口修改角色涉及的接口是:RoleMapper.java。@MapperpublicinterfaceRoleMapper{//修改角色publicvoidupdateRole(Rolerole);//查詢所有角色publicList<Role>searcherAllRole();//根據(jù)id查詢查詢指定角色publicRolesearcherRoleByID(intid);}角色管理-映射文件XML修改角色涉及的映射文件是:RoleMapper.xml。<mappernamespace="cn.js.ccit.mapper.RoleMapper"><!--查詢所有角色
--><selectid="searcherAllRole"resultType="role">select*fromtb_role</select><!--根據(jù)id查詢指定角色
--><selectid="searcherRoleByID"parameterType="int“resultType="role">select*fromtb_rolewhereid=#{id}</select><!—修改角色
--><updateid="updateRole"parameterType="role">updatetb_rolesetroleName=#{roleName},roleDesc=#{roleDesc}whereid=#{id}</update></mapper>角色管理-控制層修改角色首先要根據(jù)ID獲取角色信息并保存到內(nèi)存中,其次在修改頁(yè)面中輸入要修改的角色信息,最后獲取角色信息并修改角色。@WebServlet("/role")publicclassRoleControllerextendsHttpServlet{protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{PrintWriterout=res.getWriter();req.setCharacterEncoding("utf-8");HttpSessionsession=req.getSession();res.setContentType("text/html;charset=utf-8");
Stringaction=req.getParameter("action");//獲取操作命令Stringresult="";//返回地址SqlSessionsqlSession=MyBatisUtil.openSession();//獲取sqlSession對(duì)象RoleMapperroleMapper=sqlSession.getMapper(RoleMapper.class);if(action.equals("show")){//顯示所有角色信息List<Role>roles=roleMapper.searcherAllRole();session.setAttribute("roles",roles);result="role/showAllRole.jsp";}
if(action.equals("preUpdate")){//修改預(yù)處理StringidStr=req.getParameter("id");intid=Integer.parseInt(idStr);Rolerole=roleMapper.searcherRoleByID(id);session.setAttribute("role",role);result="role/updateRole.jsp";}if(action.equals("update")){//修改角色StringidStr=req.getParameter("id");intid=Integer.parseInt(idStr);StringroleName=req.getParameter("newRoleName");StringroleDesc=req.getParameter("newRoleDesc");Rolerole=newRole();role.setId(id);role.setRoleName(roleName);role.setRoleDesc(roleDesc);roleMapper.updateRole(role);sqlSmit();result="role?action=show";}res.sendRedirect(result);}
}謝謝觀看主講人:崔浩延遲符MyBatis配置文件與映射文件MyBatis入門與配置延遲符Mybatis配置文件Mybatis映射文件MyBatis配置文件與映射文件延遲符MyBatis的配置文件配置文件一般用mybatis-config.xml命名DB連接的基本要素實(shí)體類的別名設(shè)置運(yùn)行時(shí)環(huán)境設(shè)置配置映射文件MyBatis的配置文件<configuration><properties><settings><typeAliases><typeHandlers><objectFacotry><plugins><databaseIdProvider><environments><mappers><environment><transactionManager><dataSource>MyBatis的配置文件<properties>給系統(tǒng)配置一些運(yùn)行參數(shù),可以放在XML文件或者properties文件中,方便參數(shù)修改。010203src目錄下創(chuàng)建perties文件jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatisjdbc.username=rootjdbc.password=rootmybatis-config.xml中配置屬性<propertiesresource=“perties”/>修改配置文件中數(shù)據(jù)庫(kù)連接的信息<dataSourcetype="POOLED"><propertyname="driver"value="${jdbc.driver}"/><propertyname="url"value="${jdbc.url}"/><propertyname="username"value="${jdbc.username}"/><propertyname="password"value="${jdbc.password}"/></dataSource>MyBatis的配置文件<settings>主要用于改變MyBatis運(yùn)行時(shí)的行為,但在大部分情況下使用默認(rèn)值便可以運(yùn)行,一般只需要修改一些常用的規(guī)則即可,例如開啟二級(jí)緩存、開啟延遲加載等。配置項(xiàng)作用可設(shè)置值默認(rèn)值cacheEnabled該配置影響所有映射器中配置緩存的全局開關(guān)true|falsetruelazyLoadingEnabled延遲加載的全局開關(guān)。當(dāng)開
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 冀教版三年級(jí)下冊(cè)數(shù)學(xué)教學(xué)計(jì)劃(及進(jìn)度表)
- 某住宅項(xiàng)目營(yíng)銷執(zhí)行報(bào)告分析
- 2025年春初中蘇科版八年級(jí)下冊(cè)物理10.4《浮力》說(shuō)課稿
- 2025年黨章黨紀(jì)黨史黨建知識(shí)競(jìng)賽多項(xiàng)選擇題庫(kù)及答案(共200道題)
- 項(xiàng)目工作應(yīng)聘簡(jiǎn)歷模板
- 畢業(yè)生工資調(diào)整通知函
- 軟件開發(fā)項(xiàng)目管理工具應(yīng)用指南
- 交通信號(hào)系統(tǒng)方案
- 項(xiàng)目團(tuán)隊(duì)建設(shè)與合作策略溝通會(huì)議紀(jì)要
- 股東合作協(xié)議與權(quán)益分配方案
- 《淺談小學(xué)口語(yǔ)交際的教學(xué)策略》 論文
- 某某醫(yī)院信息化建設(shè)項(xiàng)目可行性研究報(bào)告
- 《二力平衡》解題方法
- 《耳鼻咽喉科疾病》課件
- 2023年山西省太原市高考英語(yǔ)一模試卷及答案解析
- 婦科常見急腹癥及護(hù)理
- 新生兒醫(yī)院感染危險(xiǎn)因素及管理護(hù)理課件
- 重點(diǎn)專科建設(shè)總結(jié)匯報(bào)
- 電氣自動(dòng)化專業(yè)高職單招2024年技能考試題庫(kù)及答案
- 漢字五千年解說(shuō)詞完整版內(nèi)容
- 多發(fā)腦轉(zhuǎn)移瘤護(hù)理查房課件
評(píng)論
0/150
提交評(píng)論