軟件架構(gòu)設(shè)計(jì)實(shí)踐- 基于SSM框架 課件 第9章 Mybatis框架基礎(chǔ)_第1頁(yè)
軟件架構(gòu)設(shè)計(jì)實(shí)踐- 基于SSM框架 課件 第9章 Mybatis框架基礎(chǔ)_第2頁(yè)
軟件架構(gòu)設(shè)計(jì)實(shí)踐- 基于SSM框架 課件 第9章 Mybatis框架基礎(chǔ)_第3頁(yè)
軟件架構(gòu)設(shè)計(jì)實(shí)踐- 基于SSM框架 課件 第9章 Mybatis框架基礎(chǔ)_第4頁(yè)
軟件架構(gòu)設(shè)計(jì)實(shí)踐- 基于SSM框架 課件 第9章 Mybatis框架基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩39頁(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)介

軟件架構(gòu)設(shè)計(jì)實(shí)戰(zhàn)——基于SSM框架Software

Architecture

Design

Practice

Based

on

SSM

Framework第9章MyBatis框架基礎(chǔ)123MyBatis概述MyBatis重要API簡(jiǎn)介MyBatis的配置文件4第一個(gè)MyBatis應(yīng)用程序MyBatis概述在面向?qū)ο蟪绦蛟O(shè)計(jì)當(dāng)中我們所面對(duì)的是一個(gè)一個(gè)的對(duì)象,而在關(guān)系型數(shù)據(jù)庫(kù)中,所面對(duì)的是實(shí)體以及實(shí)體之間的關(guān)系,在程序設(shè)計(jì)中我們經(jīng)常面臨的問(wèn)題是面向?qū)ο蟪绦蛟O(shè)計(jì)中的對(duì)象與關(guān)系型數(shù)據(jù)庫(kù)中實(shí)體之間的轉(zhuǎn)換,需要程序員編寫(xiě)大量的、重復(fù)的、與業(yè)務(wù)邏輯無(wú)關(guān)的代碼,這種機(jī)械性的工作能不能被簡(jiǎn)化呢?11.1傳統(tǒng)JDBC的劣勢(shì)隨著軟件開(kāi)發(fā)技術(shù)的不斷升級(jí),軟件開(kāi)發(fā)工具的不斷進(jìn)步,采用JDBC數(shù)據(jù)庫(kù)連接方式的弊端也越來(lái)越明顯,主要表現(xiàn)為以下四個(gè)方面:(1)SQL語(yǔ)句在代碼中硬編碼,造成代碼不易維護(hù)。(2)數(shù)據(jù)表之間存在各種關(guān)系,包括一對(duì)一、一對(duì)多、多對(duì)多、級(jí)聯(lián)等。如果采用JDBC編程的方式維護(hù)數(shù)據(jù)表之間的關(guān)系,過(guò)程較為復(fù)雜并且容易出錯(cuò)。(3)數(shù)據(jù)庫(kù)連接創(chuàng)建、釋放頻繁,會(huì)造成系統(tǒng)資源浪費(fèi),從而影響系統(tǒng)性能。(4)雖然在JDBC中提供了預(yù)處理接口PreparedStatement,但是用PreparedStatement向占位符傳參數(shù)存在硬編碼,因?yàn)镾QL語(yǔ)句的where條件不一定,可能有時(shí)多也可能有時(shí)少,修改SQL語(yǔ)句需要修改代碼,造成系統(tǒng)不易維護(hù)。1.2ORM簡(jiǎn)介MVC設(shè)計(jì)模式實(shí)現(xiàn)了表現(xiàn)層(即View)和數(shù)據(jù)處理層(即Model)的解耦合,而持久化層的設(shè)計(jì)則是要實(shí)現(xiàn)數(shù)據(jù)處理層內(nèi)部的業(yè)務(wù)邏輯和數(shù)據(jù)邏輯的解耦合。而ORM采用映射元數(shù)據(jù)來(lái)描述對(duì)象關(guān)系的映射,使得ORM能在任何一個(gè)應(yīng)用的業(yè)務(wù)邏輯層和數(shù)據(jù)庫(kù)層之間充當(dāng)橋梁,可以讓我們通過(guò)類(lèi)和類(lèi)對(duì)象就能操作它所對(duì)應(yīng)的表格中的數(shù)據(jù)。ORM映射1.2ORM簡(jiǎn)介在ORM的映射當(dāng)中,面向?qū)ο蟪绦蛟O(shè)計(jì)中的類(lèi)映射成關(guān)系型數(shù)據(jù)庫(kù)中的表(可能一個(gè)表,可能多個(gè)表,也可能一個(gè)表的部分字段),一般采用XML文件的形式進(jìn)行描述;而具體的一個(gè)個(gè)對(duì)象則映射為數(shù)據(jù)庫(kù)表中的一條條記錄,對(duì)象的屬性映射為數(shù)據(jù)庫(kù)表中的字段。1.2ORM簡(jiǎn)介(1)HibernateHibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了較為輕量級(jí)的對(duì)象封裝,它將對(duì)象與數(shù)據(jù)庫(kù)表建立映射關(guān)系,是個(gè)全自動(dòng)的ORM框架,Hibernate可以自動(dòng)生成SQL語(yǔ)句、并自動(dòng)執(zhí)行,使得Java程序員可以隨心所欲的使用面向?qū)ο缶幊趟季S來(lái)操作數(shù)據(jù)庫(kù),通過(guò)操作對(duì)象的方式來(lái)操作數(shù)據(jù)庫(kù)極大的提高開(kāi)發(fā)的效率。1.2ORM簡(jiǎn)介(2)MyBatisMyBatis是一種“半自動(dòng)化”的ORM框架,和Hibernate不同,MyBatis需要手動(dòng)提供POJO(PlainOldJavaObjects)、SQL語(yǔ)句并匹配映射關(guān)系,正因?yàn)榇?,它可以更加靈活地生成映射關(guān)系。MyBatis充分允許開(kāi)發(fā)人員利用數(shù)據(jù)庫(kù)的各項(xiàng)功能,例如存儲(chǔ)過(guò)程、視圖、復(fù)雜查詢(xún)等,具有高度靈活性、可優(yōu)化、易維護(hù)等優(yōu)點(diǎn)。與Hibernate相比,使用MyBatis的編碼量較大,但這并不影響它在一些復(fù)雜的和需要優(yōu)化性能的項(xiàng)目中使用。1.3MyBatis簡(jiǎn)介MyBatis本是apache的一個(gè)開(kāi)源項(xiàng)目iBatis,2010年這個(gè)項(xiàng)目由apachesoftwarefoundation遷移到了googlecode,并且改名為MyBatis。在MyBatis中也采用了工廠(chǎng)模式進(jìn)行對(duì)象創(chuàng)建與管理,每個(gè)MyBatis應(yīng)用程序主要都使用了SqlSessionFactory實(shí)例,一個(gè)SqlSessionFactory實(shí)例可以通過(guò)SqlSessionFactoryBuilder獲得。1.3MyBatis簡(jiǎn)介MyBatis的主要優(yōu)點(diǎn)包括以下四個(gè)方面:(1)通過(guò)參數(shù)映射方式,實(shí)現(xiàn)了SQL和Java代碼的分離,解除SQL語(yǔ)句與程序代碼的耦合,可以將參數(shù)靈活的配置在SQL語(yǔ)句的配置文件XML中,避免在Java類(lèi)中配置參數(shù)。(2)通過(guò)輸出映射機(jī)制,將結(jié)果集的檢索自動(dòng)映射成相應(yīng)的Java對(duì)象,避免對(duì)結(jié)果集手工檢索。(3)Mybatis也采用非侵入式設(shè)計(jì),使用簡(jiǎn)單,沒(méi)有任何第三方依賴(lài),最簡(jiǎn)單安裝只要兩個(gè)jar文件+配置幾個(gè)SQL映射文件,易學(xué)易用。通過(guò)文檔和源代碼,可以比較完全的掌握它的設(shè)計(jì)思路和實(shí)現(xiàn)。(4)Mybatis不會(huì)對(duì)應(yīng)用程序或者數(shù)據(jù)庫(kù)的現(xiàn)有設(shè)計(jì)強(qiáng)加任何影響,SQL寫(xiě)在XML里,便于統(tǒng)一管理和優(yōu)化。通過(guò)SQL語(yǔ)句可以滿(mǎn)足操作數(shù)據(jù)庫(kù)的所有需求。Mybatis可以通過(guò)XML配置文件對(duì)數(shù)據(jù)庫(kù)連接進(jìn)行管理。課程思政MyBatis的前身是iBatis,iBatis是ClintonBegin于2001年發(fā)起的一個(gè)開(kāi)放源代碼項(xiàng)目,目的是發(fā)展密碼軟件的解決方案。從MyBatis的發(fā)展歷程可以看出,其發(fā)展過(guò)程并不是一帆風(fēng)順的,也經(jīng)歷了很多磨難和變遷,所以大家一定要清晰的認(rèn)識(shí)到科研的道路一定要經(jīng)得起沉浮、耐得住寂寞、不怕失敗、刻苦專(zhuān)研,總能守得日出見(jiàn)云開(kāi)。在軟件項(xiàng)目開(kāi)發(fā)中使用MyBatis能夠給程序員帶來(lái)諸多的便利性,減少大量的重復(fù)代碼編寫(xiě),提高軟件開(kāi)發(fā)的效率。作為軟件從業(yè)人員一定要有高尚的情懷、無(wú)私的奉獻(xiàn)精神,共同推動(dòng)軟件產(chǎn)業(yè)的發(fā)展,為我國(guó)的社會(huì)主義現(xiàn)代化建設(shè)貢獻(xiàn)力量。1.4MyBatis的功能架構(gòu)MyBatis是一款優(yōu)秀的持久層框架,它支持自定義SQL、存儲(chǔ)過(guò)程以及高級(jí)映射。MyBatis免除了幾乎所有的JDBC代碼以及設(shè)置參數(shù)和獲取結(jié)果集的工作。MyBatis可以通過(guò)簡(jiǎn)單的XML或注解來(lái)配置和映射原始類(lèi)型、接口和POJO為數(shù)據(jù)庫(kù)中的記錄。1.4MyBatis的功能架構(gòu)1.4MyBatis的功能架構(gòu)接口層:主要就是和數(shù)據(jù)庫(kù)交互,提供給外部使用的接口A(yíng)PI,開(kāi)發(fā)人員通過(guò)這些本地API來(lái)操縱數(shù)據(jù)庫(kù),接口層一接收到調(diào)用請(qǐng)求就會(huì)調(diào)用數(shù)據(jù)處理層來(lái)完成具體的數(shù)據(jù)處理。數(shù)據(jù)處理層:是MyBatis的核心,負(fù)責(zé)具體的SQL查找、SQL解析、SQL執(zhí)行和執(zhí)行結(jié)果映射處理等,它主要的目的是根據(jù)調(diào)用的請(qǐng)求完成一次數(shù)據(jù)庫(kù)操作。主要完成兩個(gè)功能:①通過(guò)傳入?yún)?shù)構(gòu)建動(dòng)態(tài)SQL語(yǔ)句;②SQL語(yǔ)句的執(zhí)行以及封裝查詢(xún)結(jié)果集?;A(chǔ)支撐層:基礎(chǔ)支撐層是整個(gè)MyBatis框架的地基,負(fù)責(zé)最基礎(chǔ)的功能支撐,包括連接管理、事務(wù)管理、配置加載和緩存處理,這些都是共用的東西,將他們抽取出來(lái)作為最基礎(chǔ)的組件,為上層的數(shù)據(jù)處理層提供最基礎(chǔ)的支撐。1.5MyBatis的工作流程在理解了Mybatis的功能架構(gòu)之后,接下來(lái)我們探討一下Mybatis的工作流程,這也是后面我們使用Mybatis框架的基礎(chǔ)。1.5MyBatis的工作流程1.5MyBatis的工作流程Mybatis框架也是采用工程模式進(jìn)行對(duì)象的創(chuàng)建與管理的,其核心對(duì)象為SqlSessionFactory,每一步流程的詳細(xì)說(shuō)明如下文所述:(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ù)中的一張表。1.5MyBatis的工作流程(3)構(gòu)造會(huì)話(huà)工廠(chǎng)。通過(guò)MyBatis的環(huán)境配置信息構(gòu)建會(huì)話(huà)工廠(chǎng)SqlSessionFactory。(4)創(chuàng)建會(huì)話(huà)對(duì)象。由會(huì)話(huà)工廠(chǎng)創(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é)查詢(xún)緩存的維護(hù)。(6)MappedStatement對(duì)象。在Executor接口的執(zhí)行方法中有一個(gè)MappedStatement類(lèi)型的參數(shù),該參數(shù)是對(duì)映射信息的封裝,用于存儲(chǔ)要映射的SQL語(yǔ)句的id、參數(shù)等信息。1.5MyBatis的工作流程(7)輸入?yún)?shù)映射。輸入?yún)?shù)類(lèi)型可以是Map、List等集合類(lèi)型,也可以是基本數(shù)據(jù)類(lèi)型和POJO類(lèi)型。輸入?yún)?shù)映射過(guò)程類(lèi)似于JDBC對(duì)preparedStatement對(duì)象設(shè)置參數(shù)的過(guò)程。(8)輸出結(jié)果映射。輸出結(jié)果類(lèi)型可以是Map、List等集合類(lèi)型,也可以是基本數(shù)據(jù)類(lèi)型和POJO類(lèi)型。輸出結(jié)果映射過(guò)程類(lèi)似于JDBC對(duì)結(jié)果集的解析過(guò)程。1.6MyBatis下載與使用由于Mybatis是由第三方機(jī)構(gòu)負(fù)責(zé)升級(jí)維護(hù)的開(kāi)源框架,沒(méi)有在IDE工具中集成,所以需要開(kāi)發(fā)者手動(dòng)下載jar包。1.6MyBatis下載與使用名稱(chēng)說(shuō)明asm-7.1.jar操作Java字節(jié)碼的類(lèi)庫(kù)cglib-3.3.0.jar用來(lái)動(dòng)態(tài)繼承Java類(lèi)或?qū)崿F(xiàn)接口commons-logging-1.2.jar用于通用日志處理javassist-3.27.0-GA.jar分析、編碼和創(chuàng)建Java類(lèi)庫(kù)log4j-api-2.13.3.jarlog4j到log4j2的橋接包ognl-3.3.4.jar支持ognl表達(dá)式的解析reload4j-1.2.24.jar一個(gè)更強(qiáng)大的日志管理器,目的是為了解決log4j中的漏洞slf4j-api-2.0.6.jar提供日志接口并提供獲取具體日志對(duì)象的方法lib文件夾存放了MyBatis運(yùn)行依賴(lài)的jar包,一共包括8個(gè)jar文件,每個(gè)jar的具體作用見(jiàn)表9-2的說(shuō)明。mybatis-3.5.13.jar是MyBatis的核心類(lèi)庫(kù),mybatis-3.5.13.pdf是MyBatis的參考文檔,介紹了MyBatis的簡(jiǎn)單使用說(shuō)明和案例,在項(xiàng)目開(kāi)發(fā)中,導(dǎo)入mybatis-3.5.13.jar包和其依賴(lài)的另外8個(gè)jar即可。MyBatis重要API簡(jiǎn)介本節(jié)將對(duì)MyBatis的重要API接口進(jìn)行重點(diǎn)講解。1.ResourcesResources是MyBatis的加載資源的工具類(lèi),位于org.apache.ibatis.io.Resources包中,其核心方法是getResourceAsStream(StringfileName),用于通過(guò)類(lèi)加載器返回指定資源的字節(jié)輸入流,返回值類(lèi)型為InputStream。2MyBatis重要API簡(jiǎn)介本節(jié)將對(duì)MyBatis的重要API接口進(jìn)行重點(diǎn)講解。2.SqlSessionFactorySqlSessionFactory對(duì)象是由SqlSessionFactoryBuilder對(duì)象創(chuàng)建的,SqlSessionFactoryBuilder對(duì)象通過(guò)調(diào)用build()方法創(chuàng)建SqlSessionFactory對(duì)象2MyBatis重要API簡(jiǎn)介本節(jié)將對(duì)MyBatis的重要API接口進(jìn)行重點(diǎn)講解。3.SqlSessionSqlSession對(duì)象是MyBatis應(yīng)用中的核心對(duì)象,類(lèi)似于JDBC編程中的Connection對(duì)象,其首要作用是執(zhí)行持久化操作,具有強(qiáng)大功能,在軟件開(kāi)發(fā)中最為常見(jiàn)、使用頻率也最高。2MyBatis的配置文件配置文件對(duì)MyBatis的整個(gè)運(yùn)行體系產(chǎn)生影響,它包含了很多控制MyBatis功能的重要信息,是MyBatis實(shí)現(xiàn)功能的重要保證。在開(kāi)發(fā)過(guò)程中,當(dāng)需要更改MyBatis的配置信息時(shí),只需要更改配置文件中的相關(guān)元素及屬性即可,具有良好的可擴(kuò)展性。3MyBatis的配置文件33.1properties元素<properties>用于配置屬性的元素,MyBatis支持<properties>元素的兩種配置方式:properties文件和<property>子元素。1.properties文件properties元素可以通過(guò)resource屬性指定外部properties文件,代碼如下:<propertiesresource="mybatisDemo/resources/perties"/>2.property子元素配置<properties>元素通過(guò)其子元素<property>完成屬性傳遞,例如:通過(guò)properties子元素property配置username和password變量,代碼如下:<properties><propertyname="username"value="root"/><propertyname="password"value="root"/></properties>3.2settings元素settings元素用于配置MyBatis的運(yùn)行時(shí)行為,它能深刻的影響MyBatis的底層運(yùn)行,一般不需要大量配置,大部分情況下使用其默認(rèn)值即可。3.3typeAliases元素由于類(lèi)的完全限定名比較長(zhǎng),為了簡(jiǎn)化開(kāi)發(fā)、降低代碼的繁瑣度,MyBatis支持使用別名。別名就是為類(lèi)設(shè)置一個(gè)簡(jiǎn)短的名稱(chēng),方便開(kāi)發(fā)人員代碼編寫(xiě)。別名的設(shè)置一般通過(guò)配置文件中的<typeAliases>元素進(jìn)行,具體代碼如下:<typeAliases><typeAliasalias="Student"type="com.exmple.model.Student"/></typeAliases>如果需要對(duì)同一個(gè)包下的多個(gè)類(lèi)定義別名,則可以定義為:<typeAliases><packagename="com.exmple.model"/></typeAliases>3.4typeHandlers元素在程序運(yùn)行過(guò)程中,當(dāng)MyBatis為SQL語(yǔ)句設(shè)置參數(shù)或者從結(jié)果集中取值值,都需要進(jìn)行數(shù)據(jù)類(lèi)型的轉(zhuǎn)換,而這些工作都由typeHandler來(lái)完成。typeHandler,即類(lèi)型轉(zhuǎn)換器,它的核心功能是根據(jù)程序運(yùn)行需要將Java語(yǔ)言中的各種基本數(shù)據(jù)類(lèi)型轉(zhuǎn)換成數(shù)據(jù)庫(kù)語(yǔ)言支持的JDBC類(lèi)型,或者由JDBC類(lèi)型轉(zhuǎn)換為Java的數(shù)據(jù)類(lèi)型。在MyBatis內(nèi)部定義了一系列的typeHandler,滿(mǎn)足軟件開(kāi)發(fā)的基本需要,例如:BoolTypeHandler能夠完成Boolean類(lèi)型的雙向轉(zhuǎn)換、LongTypeHandler能夠完成Long類(lèi)型的雙向轉(zhuǎn)換、ByteTypeHandler能夠完成Byte類(lèi)型的雙向轉(zhuǎn)換,這些typeHandler無(wú)需顯示聲明,MyBatis會(huì)自動(dòng)探測(cè)數(shù)據(jù)類(lèi)型并完成轉(zhuǎn)換。3.5objectFactory元素MyBatis通過(guò)ObjectFactory(對(duì)象工廠(chǎng))創(chuàng)建結(jié)果集對(duì)象,在默認(rèn)情況下,MyBatis通過(guò)其定義的DefaultObjectFactory類(lèi)完成相關(guān)的工作。但是,在實(shí)際開(kāi)發(fā)中,當(dāng)需要干預(yù)結(jié)果集對(duì)象的創(chuàng)建過(guò)程時(shí),就需要自定義ObjectFactory。MyBatis支持自定義ObjectFactory,自定義ObjectFactory分為兩個(gè)環(huán)節(jié):首先要編寫(xiě)ObjectFactory類(lèi),其次要完成配置。自定義的ObjectFactory類(lèi)通常要實(shí)現(xiàn)ObjectFactory接口或繼承DefaultObjectFactory類(lèi),編寫(xiě)完ObjectFactory類(lèi)之后,要將該ObjectFactory類(lèi)配置到MyBatis的配置文件中。MyBatis通過(guò)<ObjectFactory>元素配置<ObjectFactory>,具體示例代碼如下。<objectFactorytype="com.exmple.factory.MyObjectFactory"/>3.6environments元素MyBatis支持多種環(huán)境,使用不同的環(huán)境可以操作不同的數(shù)據(jù)庫(kù),并且MyBatis可以將相同的SQL映射應(yīng)用到多種數(shù)據(jù)庫(kù)。通過(guò)修改運(yùn)行環(huán)境,MyBatis能夠匹配數(shù)據(jù)庫(kù)的常見(jiàn)需求,例如:開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、運(yùn)行環(huán)境之間的隨意切換,讓多個(gè)數(shù)據(jù)庫(kù)使用相同的SQL映射。environment是environments的子元素,用來(lái)配置MyBatis的一套運(yùn)行環(huán)境,需指定運(yùn)行環(huán)境ID、事務(wù)管理、數(shù)據(jù)源配置等相關(guān)信息。3.6environments元素1.transactionManager元素MyBatis支持兩種事務(wù)管理器類(lèi)型,即JDBC類(lèi)型和MANAGED類(lèi)型。如果使用JDBC類(lèi)型的事務(wù)管理器,則應(yīng)用程序服務(wù)器負(fù)責(zé)事務(wù)管理操作,例如事務(wù)提交、事務(wù)回滾等。如果使用MANAGED類(lèi)型的事務(wù)管理器,則應(yīng)用程序服務(wù)器僅負(fù)責(zé)管理連接生命周期,事務(wù)的管理由MyBatis負(fù)責(zé)。3.6environments元素2.dataSource元素用于配置數(shù)據(jù)庫(kù)的連接屬性,例如要連接的數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序名稱(chēng)、URL地址、用戶(hù)名和密碼等。dataSource中的type屬性用于指定數(shù)據(jù)源類(lèi)型,有以下3種類(lèi)型。(1)UNPOOLED(2)POOLED(3)JNDI(JavaNamingandDirectoryInterface)3.7mappers元素在MyBatis的配置文件中,mappers元素用于引入配置文件。mapper是mappers的子元素,mapper中的resource屬性用于指定SQL映射文件的路徑(類(lèi)資源路徑),每個(gè)mapper元素用于引入一個(gè)映射文件,在一個(gè)應(yīng)用當(dāng)中可以編寫(xiě)多個(gè)映射文件(映射文件的編寫(xiě)下一章將詳細(xì)介紹)。代碼如下所示。<mappers><mapperresource="com/example/mapper/Student.xml"/><mapperresource="com/example/mapper/Course.xml"/><mapperresource="com/example/mapper/Grade.xml"/></mappers>第一個(gè)MyBatis應(yīng)用程序本節(jié)將結(jié)合“駕校學(xué)員信息管理系統(tǒng)”中的“學(xué)員信息”管理作為入門(mén)案例來(lái)講解MyBatis框架的基本使用。44.1搭建開(kāi)發(fā)運(yùn)行環(huán)境1.新建工程導(dǎo)入架包4.1搭建開(kāi)發(fā)運(yùn)行環(huán)境2.數(shù)據(jù)準(zhǔn)備DROPDATABASEIFEXISTSdriverschooldb;CREATEDATABASEdriverschooldb;USEdriverschooldb;DROPTABLEIFEXISTSt_student;CREATETABLEt_student(stu_idi

溫馨提示

  • 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)論