電商Web平臺開發(fā) 課件 項目三 搭建電商平臺數(shù)據(jù)處理Mybais項目_第1頁
電商Web平臺開發(fā) 課件 項目三 搭建電商平臺數(shù)據(jù)處理Mybais項目_第2頁
電商Web平臺開發(fā) 課件 項目三 搭建電商平臺數(shù)據(jù)處理Mybais項目_第3頁
電商Web平臺開發(fā) 課件 項目三 搭建電商平臺數(shù)據(jù)處理Mybais項目_第4頁
電商Web平臺開發(fā) 課件 項目三 搭建電商平臺數(shù)據(jù)處理Mybais項目_第5頁
已閱讀5頁,還剩159頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

模塊一基礎(chǔ)技能訓(xùn)練模塊《電商web云平臺開發(fā)》思維導(dǎo)圖搭建電商平臺Spring業(yè)務(wù)層搭建電商平臺的web項目SpringMVC展示層搭建電商平臺數(shù)據(jù)處理Mybais項目1目錄CONTENTS234電商平臺SSM三層框架整合項目三

搭建電商平臺數(shù)據(jù)處理Mybais項目項目背景

MyBatis是一款優(yōu)秀的開源持久層框架,是Java中使用較多的ORM框架,兩者可以在同一項目中互補使用。MyBatis的開發(fā)步驟是根據(jù)全局配置文件初始化會話工廠,通過會話工廠開啟會話,從會話對象得到映射器,使用映射器調(diào)用映射的數(shù)據(jù)方法。全局配置文件會話工廠開啟會話會話對象輸入?yún)?shù)映射輸出結(jié)果映射本章節(jié)主要介紹MyBatis框架的相關(guān)知識,需要掌握在項目中使用MyBatis框架的能力。研究內(nèi)容認知MyBatis掌握MyBatis基礎(chǔ)配置文件掌握MyBatis單表CRUD操作掌握MyBatis多表關(guān)聯(lián)操作學習目標1.理解MyBatis框架以及工作原理;2.了解MyBatis與Hibernate區(qū)別;3.認識MyBatis常用標簽以及配置文檔。知識目標1.掌握MyBatis單表CRUD操作;2.掌握Mapper動態(tài)代理開發(fā)技巧;3.掌握MyBatis單表curd操作;4.掌握MyBatis多表關(guān)聯(lián)關(guān)系查詢設(shè)置。技能目標1.通過搭建電商平臺數(shù)據(jù)處理的MyBatis項目培養(yǎng)學生學習開發(fā)語言的興趣;2.通過MyBatis相關(guān)操作的實現(xiàn)來鍛煉學生規(guī)范的編碼能力。素養(yǎng)目標任務(wù)一認知MyBatis預(yù)備知識一、MyBatis起源來源于“internet”和“abatis”的組合>基于Java的持久層框架>包括SQLMaps和DataAccessObjects(Dao)>很好地解決Hibernate遇到的問題>預(yù)備知識二、MyBatis簡介工作原理將Statement配置,通過動態(tài)參數(shù)進行映射,生成最終執(zhí)行的SQL語句,由MyBatis框架執(zhí)行SQL,并將結(jié)果映射成Java對象。預(yù)備知識結(jié)構(gòu)體系二、MyBatis簡介實施準備開發(fā)人員想要使用MyBatis框架,第一步應(yīng)當了解什么是MyBatis框架,同學們開始本節(jié)任務(wù)之前,可以提前瀏覽一下MyBatis的官網(wǎng),其官網(wǎng)網(wǎng)址為(),了解MyBatis框架的下載和MyBatis核心jar包的作用,為本章學習內(nèi)容做準備。任務(wù)實施與分析步驟1:下載MyBatis相關(guān)的包ABCD點擊“MyBatis-3”點擊MyBatis3.3.0.zip進入GitHub官網(wǎng)點擊“DownloadLatest”任務(wù)實施與分析步驟2:MyBatisJar包說明MyBatis框架的解壓目錄中只有一個Jar包,它是MyBatis的核心Jar包。還有一個lib目錄,其中存放著MyBatis所依賴的Jar包。任務(wù)實施與分析Jar包依賴Jar包作用說明MyBatis-3.4.5.jarMyBatis核心jar包asm-5.2.jar字節(jié)碼解析包,被cglib依賴cglib-3.2.5.jar動態(tài)代理的實現(xiàn)commons-logging-1.21.jar日志包javassist-3.22.01-GR2.jar字節(jié)碼解析包log4j-1.2.17.jar日志包log4j-api-2.3.jarlog4j-core-2.3.jarslf4j-api-1.7.25.jarslf4j-log4j12-1.7.25.jarJar包及依賴Jar包作用說明思政小課堂漢字國標碼,創(chuàng)建于1980年,目的為了使每個漢字有一個全國統(tǒng)一的代碼而頒布了漢字編碼的國家標準。每個漢字有個二進制編碼,叫漢字國標碼。我國國家標準局于1981年5月頒布了《信息交換用漢字編碼字符集——基本集》,代號為GB2312-80,共對6763個漢字和682個圖形字符進行了編碼,其編碼原則為:漢字用兩個字節(jié)表示,每個字節(jié)用七位碼(高位為0)。國家標準將漢字和圖形符號排列在一個94行94列的二維代碼表中,每兩個字節(jié)分別用兩位十進制編碼,前字節(jié)的編碼稱為區(qū)碼,后字節(jié)的編碼稱為位碼,此即區(qū)位碼。MyBatis實現(xiàn)了SQL語句與代碼的分離,給程序的維護帶來了很大便利。MyBatis能夠?qū)崿F(xiàn)比Hibernate等全自動ORM框架更高的查詢效率,能夠完成復(fù)雜查詢。Hibernate提供了全面的數(shù)據(jù)庫封裝機制的“全自動”O(jiān)RM靈活實現(xiàn)了POJO和數(shù)據(jù)庫表之間的映射,以及SQL的自動生成和執(zhí)行拓展知識一、MyBatis與Hibernate區(qū)別拓展知識二、MyBatis的特點輕量、體積小沒有強制第三方包的依賴高效MyBatis具備較高的效率簡單易學提供了全面的中文學習文檔靈活支持存儲過程及高級映射能夠和Spring進行很好的整合思考與總結(jié)什么是MyBatis框架?使用MyBatis框架要導(dǎo)入哪些jar包?

能力提升在前面的章節(jié)中,我們已經(jīng)對電商網(wǎng)站項目單獨引入了的Spring框架和SpringMVC框架,本節(jié)將對電商網(wǎng)站項目引入MyBatis框架,請同學們結(jié)合本節(jié)學習內(nèi)容,繼續(xù)完善電商網(wǎng)站項目的以下任務(wù):

在項目根目錄下創(chuàng)建lib文件夾;

從MyBatis官網(wǎng)下載MyBatis開發(fā)所需的jar包;

將jar包導(dǎo)入到電商網(wǎng)站項目的ib文件夾中,并添加至構(gòu)建路徑;

創(chuàng)建Test.Java文件,輸出“HelloWorld!”,確保環(huán)境搭建成功。任務(wù)訓(xùn)練1.在開發(fā)工具中新建一個javaproject項目來作為自己的電商項目框架;2.在項目的lib文件夾中導(dǎo)入Mybatis所需的jar包,并添加至構(gòu)建路徑;3.創(chuàng)建測試類,確保項目可以正常運行?!峨娚蘷eb云平臺開發(fā)》感謝觀看!模塊一基礎(chǔ)技能訓(xùn)練模塊《電商web云平臺開發(fā)》思維導(dǎo)圖目錄CONTENTS搭建電商平臺Spring業(yè)務(wù)層搭建電商平臺的web項目SpringMVC展示層搭建電商平臺數(shù)據(jù)處理Mybais項目1234電商平臺SSM三層框架整合項目三

搭建電商平臺數(shù)據(jù)處理Mybais項目項目背景

MyBatis是一款優(yōu)秀的開源持久層框架,是Java中使用較多的ORM框架,兩者可以在同一項目中互補使用。MyBatis的開發(fā)步驟是根據(jù)全局配置文件初始化會話工廠,通過會話工廠開啟會話,從會話對象得到映射器,使用映射器調(diào)用映射的數(shù)據(jù)方法。全局配置文件會話工廠開啟會話會話對象輸入?yún)?shù)映射輸出結(jié)果映射本章節(jié)主要介紹MyBatis框架的相關(guān)知識,需要掌握在項目中使用MyBatis框架的能力。研究內(nèi)容認知MyBatis掌握MyBatis基礎(chǔ)配置文件掌握MyBatis單表CRUD操作掌握MyBatis多表關(guān)聯(lián)操作學習目標1.理解MyBatis框架以及工作原理;2.了解MyBatis與Hibernate區(qū)別;3.認識MyBatis常用標簽以及配置文檔。知識目標1.掌握MyBatis單表CRUD操作;2.掌握Mapper動態(tài)代理開發(fā)技巧;3.掌握MyBatis單表curd操作;4.掌握MyBatis多表關(guān)聯(lián)關(guān)系查詢設(shè)置。技能目標1.通過搭建電商平臺數(shù)據(jù)處理的MyBatis項目培養(yǎng)學生學習開發(fā)語言的興趣;2.通過MyBatis相關(guān)操作的實現(xiàn)來鍛煉學生規(guī)范的編碼能力。素養(yǎng)目標任務(wù)二掌握MyBatis的基礎(chǔ)配置預(yù)備知識一、DAO接口是一種應(yīng)用程序編程接口,放在業(yè)務(wù)邏輯與數(shù)據(jù)庫資源中間,需要通過SqlSession對象來操作DB。DAODataAccessObject對象SqlSessionFactory對象SqlSessionFactoryBuilder的build()方法SqlSession對象預(yù)備知識實際開發(fā)過程中使用最多的123主要完成DAO層中SQL語句的映射Mapper映射文件是一個xml格式文件二、Mapper映射文件預(yù)備知識三、日志控制文件MyBatis使用Log4j進行日志處理,在MyBatis中將perties放入到項目的src目錄下。設(shè)置為DEBUG顯示出所執(zhí)行的SQL語句、參數(shù)值、對DB的影響條數(shù)等信息設(shè)置為TRACE顯示出查詢出的每條記錄的每個字段名及對應(yīng)的值注意:根日志對象rootLogger,則會輸出太多的信息,不建議使用跟日志對象。預(yù)備知識四、從屬性文件中讀取DB鏈接為了方便對數(shù)據(jù)庫連接的管理,DB連接數(shù)據(jù)一般都是存放在一個專門的屬性文件中的,方便MyBatis主配置文件從這個屬性文件中讀取這些數(shù)據(jù)。實施準備同學們要進行MyBatis的基礎(chǔ)配置,需要先熟悉了解MyBatis主配置文件中的標簽以及作用,為后期綜合項目開發(fā)中靈活使用MyBatis做準備。MyBatis主配置文件是全局配置文件,主要配置MyBatis的數(shù)據(jù)源(DataSource)、事務(wù)管理(TransactionManager)、打印SQL語句、開啟二級緩存、設(shè)置實體類別名等功能。步驟1:MyBatis主配置文件功能注冊存放DB連接四要素的屬性文件注冊實體類的全限定性類名的別名注冊映射文件任務(wù)實施與分析配置MyBatis運行環(huán)境,即數(shù)據(jù)源與事務(wù)管器<configuration>標簽<properties>標簽<package>標簽<dataSource>標簽<transactionManager>標簽<environments>標簽任務(wù)實施與分析步驟2:MyBatis主配置文件標簽解析<typealias>標簽<mappers>標簽任務(wù)實施與分析<package>標簽<typeAliases> <!--將指定包中所有類的簡單類名當作其別名--> <packagename="com.framework.beans"/></typeAliases>通過package可以直接指定package的名字,MyBatis自動掃描JavaBean,通常采用這種方式指定別名,任務(wù)實施與分析<typealias>標簽<typeAliases> <typeAliastype="com.framework.beans.Student"alias="Student"/></typeAliases>type指定全限定性類名alias指定別名,必須逐個指定,比較繁瑣任務(wù)實施與分析<mappers>標簽<mapperresource=“”><mapperurl=“”><mapperclass=“”><packagename=“”>特別說明<mapperurl=“”>方式通過其URL地址即可直接訪問;<mapperclass=“”>方式使用需要滿足三個條件;<packagename=“”>方式還需要同時滿足DAO使用mapper動態(tài)代理實現(xiàn)的條件。四種方式任務(wù)實施與分析步驟3:映射文件解析namespacecacheSQL元素insertcache-refresultMap指定命名空間的緩存配置用來描述如何從數(shù)據(jù)庫結(jié)果集中來加載對象指定映射插入語句用于綁定DAO接口的指定在其他命名空間緩存配置的引用被用來定義可重用的SQL代碼段.任務(wù)實施與分析update指定映射更新語句select查詢語句是MyBatis中最常用的元素之一,對每個插入、更新或刪除操作,通常需要對應(yīng)多個查詢操作。delete指定映射刪除語句select指定映射查詢語句步驟3:映射文件解析拓展知識一、MyBatis入門程序搭建1.創(chuàng)建MyBatis_demo1程序打開MyEclipse創(chuàng)建Javaproject項目,并創(chuàng)建一個lib文件夾存放相應(yīng)jar。拓展知識2.導(dǎo)入相應(yīng)的jar文件打開剛創(chuàng)建的項目在根目錄下創(chuàng)建lib文件夾,導(dǎo)入MyBatis的jar包并構(gòu)建路徑。除了導(dǎo)入MyBatis的核心Jar包及依賴Jar包外,還需要導(dǎo)入MySQL的驅(qū)動Jar包、JUnit測試的Jar包、核心Jar包與依賴Jar包。拓展知識3.在數(shù)據(jù)庫中生成表結(jié)構(gòu)打開mySQL數(shù)據(jù)庫創(chuàng)建MyBatis_demo數(shù)據(jù)庫并創(chuàng)建student表。MyBatis要求,在創(chuàng)建數(shù)據(jù)庫表時,字段名要與屬性名一致,如果不一致,就需要再通過resultMap來解決。拓展知識4.定義實體類打開MyBatis_demo1項目創(chuàng)建com.framework.baen包,在該包下創(chuàng)建student實體類。實現(xiàn)對應(yīng)屬性get/set/toString方法以及有參無參數(shù)方法。packagecom.framework.beans;publicclassStudent{ privateIntegerid; privateStringname; privateintage; privatedoublescore; publicStudent(){ super(); //TODOAuto-generatedconstructorstub } publicStudent(Stringname,intage,doublescore){ super(); =name; this.age=age; this.score=score; }拓展知識5.定義Dao接口publicinterfaceIStudentDao{ voidinsertStu(Studentstudent);}打開MyBatis_demo1項目創(chuàng)建com.framework.Dao包,在該包下定義Student實體對應(yīng)的Dao接口IStudentDao并創(chuàng)建學生插入方法。拓展知識6.定義映射文件<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//MyB//DTDMapper3.0//EN""http://MyB/dtd/MyBatis-3-mapper.dtd"><mappernamespace="com.framework.Dao.IStudentDao">

<!--parameterType屬性可以省略--> <insertid="insertStudent"parameterType="com.framework.beans.Student"> insertintostudent(name,age,score)values(#{name},#{age},#{score}) </insert></mapper>打開MyBatis_demo1項目的com.framework.Dao包,在該包下創(chuàng)建StudentMapper.xml文件并實現(xiàn)學生插入的SQL語句聲明。拓展知識7.MyBatis主配置文件0304020501設(shè)置實體類別名開啟二級緩存事務(wù)管理(TransactionManager)打印SQL語句MyBatis的數(shù)據(jù)源(DataSource)配置文件頭,可以從MyBatis框架中的文檔MyBatis-3.3.0.pdf中找到。拓展知識7.MyBatis主配置文件jdbc.driver=com.mySQL.jdbc.Driverjdbc.url=jdbc:mySQL://:3306/MyBatis_demojdbc.user=rootjdbc.password=root打開MyBatis_demo1項目,在src文件下創(chuàng)建perties數(shù)據(jù)庫連接配置文件。在pdf中搜索“MyBatis-3-config.dtd”關(guān)鍵字,即可找到映射文件的約束。拓展知識8.創(chuàng)建工具類MyBatisUtilpublicclassMyBatisUtils{ privatestaticSqlSessionFactorySqlSessionFactory; publicstaticSqlSessiongetSqlSession(){ try{ InputStreamis=Resources.getResourceAsStream("MyBatis.xml"); if(SqlSessionFactory==null){

SqlSessionFactory=newSqlSessionFactoryBuilder().build(is); } returnSqlSessionFactory.openSession(); }catch(IOExceptione){ e.printStackTrace(); } returnnull; }}打開MyBatis_demo2項目的com.framework.utils包,在該包下創(chuàng)建MyBatisUtils數(shù)據(jù)庫連接工具類。拓展知識9.定義DAO實現(xiàn)類publicclassStudentDaoImplimplementsIStudentDao{ privateSqlSession

SqlSession; publicvoidinsertStu(Studentstudent){ //TODOAuto-generatedmethodstub try{

SqlSession=MyBatisUtils.getSqlSession();

SqlSession.insert("insertStudent",student);

SqlSession.commit(); }finally{ if(SqlSession!=null){

SqlSession.close(); } } }}打開com.framework.Dao包下的實現(xiàn)類StudentDaoImpl,對該類的插入方法做出調(diào)整,使其在finally{}中關(guān)閉SqlSession。拓展知識10.定義測試類publicclassMyTest{ privateIStudentDaodao;(對于引用接口名稱時,首字母小寫并采用駝峰式命名規(guī)則) @Before publicvoidbefore(){ dao=newStudentDaoImpl(); } @Test publicvoidtestInsert(){ Studentstudent=newStudent("張三",23,93.5); dao.insertStu(student); }}打開MyBatis_demo1項目的com.framework.test包,在該包下創(chuàng)建MyTest.class文件并實現(xiàn)測試方法。拓展知識11.添加日志文件

##definealogger#space_value=trace,consolelog4j.logger.test=debug,console##definealoggerlog4j.logger.test=trace,console在MyBatis中需要將perties放入到項目的src目錄下在MyBatis中,可以指定要輸出日志的工作空間namespace的名字,指定后,程序就只會輸出SQL的日志內(nèi)容。拓展知識12.運行測試類測試方法輸出結(jié)果

DEBUG[main]-==>Preparing:insertintostudent(name,age,score)values(?,?,?)

DEBUG[main]-==>Parameters:張三(String),23(Integer),93.5(Double)

DEBUG[main]-<==Updates:1運行測試類測試方法后控制臺輸出信息如下所示。打開數(shù)據(jù)庫查看插入的數(shù)據(jù)思政小課堂1995年1月,郵電部分別在北京、上海開通了64K專線,開始嘗試向社會提供國際互聯(lián)網(wǎng)接入服務(wù)。5月,中國電信開始籌建中國公用計算機互聯(lián)網(wǎng)(ChinaNet)全國骨干網(wǎng),開始了互聯(lián)網(wǎng)在中國的大規(guī)模建設(shè)。5月17日,郵電部正式宣布向國內(nèi)社會開放計算機互聯(lián)網(wǎng)接入服務(wù)。此外,郵電部不僅在《人民日報》上刊登推廣互聯(lián)網(wǎng)的廣告,還在當時的北京圖書館(如今的國家圖書館)舉辦了為期6天的“中國公用數(shù)據(jù)通信演示周”活動。而當時負責組織、領(lǐng)導(dǎo)建立起全國范圍內(nèi)技術(shù)先進的數(shù)據(jù)通信網(wǎng)絡(luò)工作的,正是時任郵電部數(shù)據(jù)通信局局長——劉韻潔。作為CHINANET的重要奠基人,劉韻潔被譽為"中國互聯(lián)網(wǎng)絡(luò)之父",并被美國《時代周刊》評為全球50位數(shù)字英雄之一。思考與總結(jié)MyBatis主配置文件有哪些作用?怎樣配置實體類的別名?

能力提升在上一節(jié)中,我們已經(jīng)對電商網(wǎng)站項目引入了MyBatis框架開發(fā)的相關(guān)jar包,本節(jié)將對電商網(wǎng)站項目的MyBatis配置文件進行配置,請同學們結(jié)合本節(jié)所學內(nèi)容,繼續(xù)完成電商網(wǎng)站項目的以下內(nèi)容:

完成電商網(wǎng)站項目的MyBatis框架搭建;

完成電商網(wǎng)站項目的MyBatis配置文件的配置;

向后臺用戶表中插入一條用戶數(shù)據(jù)。任務(wù)訓(xùn)練1.在數(shù)據(jù)庫中創(chuàng)建商品表,并創(chuàng)建實體類;2.創(chuàng)建商品類的Dao接口與映射文件,創(chuàng)建商品查詢方法;3.完成Mybatis框架的基礎(chǔ)配置;4.創(chuàng)建工具類,工具類的作用是獲取SqlSession對象;5.創(chuàng)建Dao接口的實現(xiàn)類,然后測試商品查詢方法是否可以從數(shù)據(jù)庫中查詢數(shù)據(jù)?!峨娚蘷eb云平臺開發(fā)》感謝觀看!模塊一基礎(chǔ)技能訓(xùn)練模塊《電商web云平臺開發(fā)》思維導(dǎo)圖目錄CONTENTS搭建電商平臺Spring業(yè)務(wù)層搭建電商平臺的web項目SpringMVC展示層搭建電商平臺數(shù)據(jù)處理Mybais項目1234電商平臺SSM三層框架整合項目三

搭建電商平臺數(shù)據(jù)處理Mybais項目項目背景

MyBatis是一款優(yōu)秀的開源持久層框架,是Java中使用較多的ORM框架,兩者可以在同一項目中互補使用。MyBatis的開發(fā)步驟是根據(jù)全局配置文件初始化會話工廠,通過會話工廠開啟會話,從會話對象得到映射器,使用映射器調(diào)用映射的數(shù)據(jù)方法。全局配置文件會話工廠開啟會話會話對象輸入?yún)?shù)映射輸出結(jié)果映射本章節(jié)主要介紹MyBatis框架的相關(guān)知識,需要掌握在項目中使用MyBatis框架的能力。研究內(nèi)容認知MyBatis掌握MyBatis基礎(chǔ)配置文件掌握MyBatis單表CRUD操作掌握MyBatis多表關(guān)聯(lián)操作學習目標1.理解MyBatis框架以及工作原理;2.了解MyBatis與Hibernate區(qū)別;3.認識MyBatis常用標簽以及配置文檔。知識目標1.掌握MyBatis單表CRUD操作;2.掌握Mapper動態(tài)代理開發(fā)技巧;3.掌握MyBatis單表curd操作;4.掌握MyBatis多表關(guān)聯(lián)關(guān)系查詢設(shè)置。技能目標1.通過搭建電商平臺數(shù)據(jù)處理的MyBatis項目培養(yǎng)學生學習開發(fā)語言的興趣;2.通過MyBatis相關(guān)操作的實現(xiàn)來鍛煉學生規(guī)范的編碼能力。素養(yǎng)目標任務(wù)三MyBatis單表CRUD操作預(yù)備知識一、在Mapper.xml文件中映射增刪改查<insertid=""parameterType="">insertinto表名稱……</insert><updateid=""parameterType="">update表名稱set……</update>1.<insert>標簽映射插入語句2.update標簽映射更新語句預(yù)備知識一、在Mapper.xml文件中映射增刪改查3.delete映射刪除語句<deleteid=""parameterType=""> deletefrom表名稱……</delete>4.select映射查詢語句<selectid=""resultType=""parameterType=""> select*from表名稱……</select>實施準備MyBatis單表CRUD操作實施準備,其主要目的是實現(xiàn)用戶CRUD操作,重點講解創(chuàng)建用戶、更新用戶、查詢所有學生、根據(jù)id刪除用戶,同學們需要提前創(chuàng)建好空白項目,并配置好MyBatis相關(guān)配置。任務(wù)實施與分析步驟1:創(chuàng)建項目MyBatis_demo2publicclassMyBatisUtils{ privatestaticSqlSessionFactorySqlSessionFactory; publicstaticSqlSessiongetSqlSession(){ try{ InputStreamis=Resources.getResourceAsStream("MyBatis.xml"); if(SqlSessionFactory==null){

SqlSessionFactory=newSqlSessionFactoryBuilder().build(is); } returnSqlSessionFactory.openSession(); }catch(IOExceptione){ e.printStackTrace(); } returnnull; }}創(chuàng)建項目并配置好MyBatis環(huán)境,搭建及配置請參考上一節(jié)的拓展知識,即代碼如右側(cè)所示:任務(wù)實施與分析步驟2:修改基本類publicinterfaceIStudentDao{ //插入用戶 voidinsertStudent(Studentstudent); voidinsertStudentCacheId(Studentstudent); //根據(jù)id刪除用戶 voiddeleteStudentById(intid); //更新用戶 voidupdateStudent(Studentstudent); //查詢所有用戶信息 List<Student>selectAllStudents(); //查詢所有用戶返回Map集合 Map<String,Object>selectAllStudentsMap(); //根據(jù)用戶ID查詢用戶 StudentselectStudentById(intid); //根據(jù)用戶名稱查詢用戶 List<Student>selectStudentsByName(Stringname); //根據(jù)用戶名稱查詢用戶 List<Student>selectStudentsByMap(Map<String,Object>params);}打開MyBatis_demo2程序下com.framework.dao包下的IStudentDao接口,在該接口中創(chuàng)建插入用戶接口、根據(jù)用戶id刪除用戶接口、更新用戶接口、查詢學生等接口。步驟2.1:修改DAO接口任務(wù)實施與分析步驟2:修改基本類@Override

public

voidinsertStudent(Studentstudent){

try{

SqlSession=MyBatisUtils.getSqlSession();

SqlSession.insert("insertStudent",student);

SqlSession.commit(); }finally{

if(SqlSession!=null){

SqlSession.close(); } }}打開MyBatis_demo2程序下com.framework.dao包下的StudentDaoImpl實現(xiàn)類,實現(xiàn)Dao中定義的接口。步驟2.2:修改實現(xiàn)類任務(wù)實施與分析步驟2:修改基本類步驟2.3:修改測試類:

使用JUnit對CURD進行測試,將DAO的創(chuàng)建放在了@Before注解的方法中。publicclassMyTest{ privateIStudentDaoDao; @Before publicvoidbefore(){ Dao=newStudentDaoImpl();}任務(wù)實施與分析步驟3:實現(xiàn)用戶插入功能<insertid="insertStudentCacheId"> insertintostudent(name,age,score)values(#{name},#{age},#{score}) <selectKeyresultType="int"keyProperty="id"order="AFTER"> select@@identity </selectKey></insert>步驟3.1:創(chuàng)建映射方法打開MyBatis_demo2程序下com.framework.Dao包下的mapper.xml映射文件,創(chuàng)建insertStudentCacheId方法。任務(wù)實施與分析步驟3:實現(xiàn)用戶插入功能

Java代碼中要使用id屬性標識

使用的是類的屬性名,而非表的字段名

resultType屬性是指出返回的數(shù)據(jù)結(jié)果類型

keyProperty屬性是指出主鍵在Java類中對應(yīng)的屬性名

order屬性是指出id的生成是在前還是在后

resultMap屬性是結(jié)果集映射

<result>標簽是column與property間的映射關(guān)系步驟3.1:創(chuàng)建映射方法該映射方法需要注意以下幾點:任務(wù)實施與分析步驟3:實現(xiàn)用戶插入功能步驟3.2:修改Dao實現(xiàn)類打開MyBatis_demo2程序下com.framework.Dao包下的StudentDaoImpl實現(xiàn)類,在該類中完成insertStudentCacheId()方法編寫。@OverridepublicvoidinsertStudentCacheId(Studentstudent){ //TODOAuto-generatedmethodstub try{

SqlSession=MyBatisUtils.getSqlSession();

SqlSession.insert("insertStudentCacheId",student);

SqlSession.commit(); }finally{ if(SqlSession!=null){

SqlSession.close(); } }}任務(wù)實施與分析步驟3:實現(xiàn)用戶插入功能//插入用戶并返回當前記錄id@TestpublicvoidtestInsertStudentCacheId(){ Studentstudent=newStudent("haohao",29,90); System.out.println("插入前:student="+student); Dao.insertStudentCacheId(student); System.out.println("插入后:student="+student);}步驟3.3:創(chuàng)建測試方法任務(wù)實施與分析步驟4:實現(xiàn)用戶更新功能<updateid="updateStudent"> updatestudentsetname=#{name},age=#{age},score=#{score}whereid=#{id}</update>步驟4.1:創(chuàng)建映射方法打開mapper.xml映射文件,創(chuàng)建updateStudent方法。需要注意:

這里的#{}中必須與Student對象的屬性名稱一一對應(yīng),不能隨意填寫。任務(wù)實施與分析步驟4:實現(xiàn)用戶更新功能步驟4.2:修改Dao實現(xiàn)類打開StudentDaoImpl實現(xiàn)類,在該類中完成updateStudent()方法編寫,該方法實現(xiàn)根據(jù)用戶id修改用戶信息。@Override

public

voidupdateStudent(Studentstudent){

//TODOAuto-generatedmethodstub

try{

SqlSession=MyBatisUtils.getSqlSession();

SqlSession.update("updateStudent",student);

SqlSession.commit(); }finally{

if(SqlSession!=null){

SqlSession.close(); } }}任務(wù)實施與分析步驟4:實現(xiàn)用戶更新功能[DEBUG]==>Preparing:updatestudentsetname=?,age=?,score=?whereid=?[DEBUG]==>Preparing:yangxj(String),30(Integer),93.5(Double),6(Integer)[DEBUG]<==Updates:1//修改用戶信息@TestpublicvoidtestUpdateStudent(){ Studentstudent=newStudent("yangxj",30,93.5); student.setId(6); Dao.updateStudent(student);}數(shù)據(jù)庫student表信息步驟4.3:創(chuàng)建測試方法任務(wù)實施與分析步驟5:實現(xiàn)用戶查詢功能<selectid="selectAllStudents"resultType="Student"> selectid,name,age,scorefromstudent</select>打開mapper.xml映射文件,創(chuàng)建selectAllStudents方法。需要注意:MyBatis支持為類起別名的方式,指定別名有兩種方式:?在主配置文件中<properties>標簽后添加<typeAliases>標簽,指定類的別名。?使用<package>方式對于實體類的全限定性類名的別名指定方式。步驟5.1:創(chuàng)建映射方法任務(wù)實施與分析步驟5:實現(xiàn)用戶查詢功能 }@Override publicMap<String,Object>selectAllStudentsMap(){ //TODOAuto-generatedmethodstub Map<String,Object>map=newHashMap<String,Object>(); try{ SqlSession=MyBatisUtils.getSqlSession(); map=SqlSession.selectMap("selectAllStudents","name"); }finally{ if(SqlSession!=null){ SqlSession.close(); } } returnmap; }在StudentDaoImpl實現(xiàn)類中完成selectAllStudents()方法編寫。該方法中使用SqlSession的selectList()方法完成查詢操作。步驟5.2:修改Dao實現(xiàn)類任務(wù)實施與分析步驟5:實現(xiàn)用戶查詢功能

//查詢所有用戶信息 @Test publicvoidtestSelectAllStudents(){ List<Student>students=Dao.selectAllStudents(); for(Studentstudent:students){ System.out.println(student); }}[DEBUG]==>Preparing:selectid,name,age,scorefromstudent[DEBUG]==>Preparing:[TRACE]<==Columns:id,name,age,score[TRACE]<==Row:6,yangxj,30,93.5[DEBUG]<==Total:1Student[id=6,name=yangxj,age=30,score=93.5]INSERTINTO‘STUDENT’VALUES(‘7’,”張三”,’23’,’93.5’);INSERTINTO‘STUDENT’VALUES(‘8’,”李四”,’24’,’94.5’);INSERTINTO‘STUDENT’VALUES(‘9’,”王五”,’25’,’95.5’);步驟5.3:創(chuàng)建測試方法任務(wù)實施與分析步驟6:實現(xiàn)刪除查詢功能<deleteid="deleteStudentById"> deletefromstudentwhereid=#{xxx}<!--這里的#{}僅僅是個占位符,里面放什么都可以--></delete>注意這里的動態(tài)參數(shù)id所賦值為#{xxx}。這個#{xxx}表示此處是一個占位符,代表delete()方法的第二個參數(shù)。步驟6.1:創(chuàng)建映射方法打開mapper.xml映射文件,創(chuàng)建deleteStudentById方法,任務(wù)實施與分析步驟6:實現(xiàn)刪除查詢功能打開StudentDaoImpl實現(xiàn)類,在該類中完成deleteStudentById()方法編寫,該方法實現(xiàn)根據(jù)用戶id刪除用戶功能。步驟6.2:修改Dao實現(xiàn)類

@Override publicvoiddeleteStudentById(intid){ //TODOAuto-generatedmethodstub try{

SqlSession=MyBatisUtils.getSqlSession();

SqlSession.delete("deleteStudentById",id);

SqlSession.commit(); }finally{ if(SqlSession!=null){

SqlSession.close(); } }}任務(wù)實施與分析步驟6:實現(xiàn)刪除查詢功能 @Test publicvoidtestDeleteStudentById(){ Dao.deleteStudentById(9);

}[DEBUG]==>Preparing:deletefromstudentwhereid=?[DEBUG]==>Parameters:9(Integer)[debug]<==Updates:1步驟6.3:創(chuàng)建測試方法:在MyTest類中完成testDeleteStudentById()測試方法編寫。拓展知識一、實現(xiàn)根據(jù)用戶名模糊查詢功能1.創(chuàng)建映射方法打開MyBatis_demo2程序下com.framework.Dao包下的mapper.xml映射文件,創(chuàng)建selectStudentsByName方法。<selectid="selectStudentsByName"resultType="Student"> selectid,name,age,scorefromstudentwherenamelike'%'#{xxx}'%' <!--selectid,name,age,scorefromstudentwherenamelikeconcat('%',#{xxx},'%')--> <!--selectid,name,age,scorefromstudentwherenamelike'%${value}%'--></select>拓展知識一、實現(xiàn)根據(jù)用戶名模糊查詢功能2.修改Dao實現(xiàn)類

@Override publicList<Student>selectStudentsByName(Stringname){ //TODOAuto-generatedmethodstub List<Student>students=null; try{ SqlSession=MyBatisUtils.getSqlSession(); students=SqlSession.selectList("selectStudentsByName",name); }finally{ if(SqlSession!=null){ SqlSession.close(); } } returnstudents;

}在StudentDaoImpl實現(xiàn)類中完成selectStudentsByName()方法編寫,該方法實現(xiàn)根據(jù)用戶名模糊查詢用戶功能。拓展知識一、實現(xiàn)根據(jù)用戶名模糊查詢功能3.創(chuàng)建測試方法

//根據(jù)用戶名稱查詢用戶 @Test publicvoidtestSelectStudentsByName(){ List<Student>students=Dao.selectStudentsByName("張"); for(Studentstudent:students){ System.out.println(student); }}[DEBUG]==>Preparing:selectid,name,age,scorefromstudentwherenamelike‘%’?’%’[DEBUG]==>Parameters:張(String)[TRACE]<==Columns:id,name,age,score[TRACE]<==Row:7,張三,23,93.5[DEBUG]<==Total:1student[id=7,name=張三,age=23,score=93.5]在MyTest類中完成testSelectStudentsByName()測試方法編寫。拓展知識二、多參數(shù)查詢用戶信息<selectid="selectStudentsByMap"resultType="Student"parameterType="java.util.Map"> selectid,name,age,scorefromstudentwhereid>#{studentId}andage>#{age}<!--map對應(yīng)的key值--></select>1.創(chuàng)建映射方法打開mapper.xml映射文件,創(chuàng)建selectStudentsByMap方法,該方法將Map集合中的key-studnetId以及key-age作為SQL動態(tài)參數(shù)。二、多參數(shù)查詢用戶信息

@Override publicList<Student>selectStudentsByMap(Map<String,Object>params){ //TODOAuto-generatedmethodstub List<Student>students=null; try{ SqlSession=MyBatisUtils.getSqlSession(); students=SqlSession.selectList("selectStudentsByMap",params); }finally{ if(SqlSession!=null){ SqlSession.close(); } } returnstudents;

}2.修改Dao實現(xiàn)類在StudentDaoImpl實現(xiàn)類中完成selectStudentsByMap()方法編寫,該方法將Map集合作為參數(shù)實現(xiàn)動態(tài)SQL查詢。拓展知識二、多參數(shù)查詢用戶信息3.創(chuàng)建測試方法

打開MyBatis_demo2程序下

com.framework.test包下的

MyTest類,在該類中完成

testSelectStudentsByMap()

測試方法編寫。

@Test publicvoidtestSelectStudentByMap(){ Studentstudent=newStudent(); student.setId(6); Map<String,Object>map=newHashMap<String,Object>(); map.put("student",student); map.put("studentId",6); map.put("age",20); List<Student>students=Dao.selectStudentsByMap(map); System.out.println("查詢結(jié)果條數(shù):"+students.size());}拓展知識二、多參數(shù)查詢用戶信息4.實體屬性參數(shù)傳值打開mapper.xml映射文件,創(chuàng)建selectStudentsByMap2方法,該方法采用實體屬性作為SQL動態(tài)參數(shù)。<selectid="selectStudentsByMap2"resultType="Student"parameterType="java.util.Map">

selectid,name,age,scorefromstudentwhereid=#{student.id}<!--map對應(yīng)的key值--></select>拓展知識二、多參數(shù)查詢用戶信息

@Override publicList<Student>selectStudentsByMap(Map<String,Object>params){ //TODOAuto-generatedmethodstub List<Student>students=null; try{

SqlSession=MyBatisUtils.getSqlSession();

students=SqlSession.selectList("selectStudentsByMap2",params); }finally{ if(SqlSession!=null){ SqlSession.close(); } } returnstudents;

}5.修改DAO實現(xiàn)類在StudentDaoImpl實現(xiàn)類中完成selectStudentsByMap()方法編寫,將映射id修改為selectStudentsByMap2拓展知識拓展知識三、mapper動態(tài)代理0201認識映射文件的namespace屬性值MyBatis框架要求將映射文件中<mapper>標簽的namespace屬性設(shè)為Dao接口的全類名。創(chuàng)建MyBatis_demo3程序拷貝MyBatis_demo2程序,命名為MyBatis_demo3,在MyBatis_demo2的基礎(chǔ)上進行修改擴展。拓展知識三、mapper動態(tài)代理3.修改映射文件對應(yīng)的namespace值4.修改日志輸出控制文件<mappernamespace="com.framework.Dao.IStudentDao"></mapper>##definealogger.framework.Dao.IStudentDao=trace,console拓展知識三、mapper動態(tài)代理A5.DAO接口方法名命名規(guī)則說明B6.DAO對象的獲取方式Session=factory.openSession();Dao=session.getMapper(IstudentDao.class);MyBatis框架要求接口中的方法名與映射文件中相應(yīng)的SQL標簽的id值相同。拓展知識三、mapper動態(tài)代理通過調(diào)用DAO接口的方法,可以從SQL映射文件中找到所要執(zhí)行SQL語句,還可通過方法參數(shù)及返回值將SQL語句的動態(tài)參數(shù)傳入,然后將查詢結(jié)果返回。7.刪除DAO實現(xiàn)類Dao實現(xiàn)對象是由JDK的Proxy動態(tài)代理自動生成的。拓展知識三、mapper動態(tài)代理@Before與@After注解方法添加SqlSession的提交方法刪除selectStudentMap()方法測試2138.修改測試類拓展知識三、mapper動態(tài)代理[DEBUG]==>Preparing:selectid,name,age,scorefromstudentwhereid>?andage>?[DEBUG]==>Parameters:6(Integer),20(Integer)[TRACE]<==Columns:id,name,age,score[TRACE]<==Row:7,張三,23,93.5[TRACE]<==Row:8,李四,24,94.5[DEBUG]<==Total:2查詢結(jié)果條數(shù):2執(zhí)行testSelectStudentsByMap方法后,查看控制臺輸出信息。9.動態(tài)代理結(jié)果展示拓展知識四、SQL動態(tài)查詢456123<if>標簽<where>標簽<choose/>標簽<foreach>標簽<SQL>標簽<include>1.了解SQL動態(tài)標簽拓展知識四、SQL動態(tài)查詢<selectid="selectStudentsDynamicSQL"resultType="Student"parameterType="java.util.Map"> select <includerefid="studentColumnList"></include> fromstudent <where> <iftest="name!=nullandname!=''"> namelike'%'#{name}'%' </if> <iftest="age>0"> andage>#{age} </if> </where></select>2.創(chuàng)建映射方法打開mapper.xml映射文件,創(chuàng)建selectStudentsDynamicSQL方法,該方式中根據(jù)動態(tài)SQL實現(xiàn)用戶名關(guān)鍵字、年齡大于20的用戶信息查詢。拓展知識四、SQL動態(tài)查詢3.創(chuàng)建Dao接口方法打開IStudentDao接口,在該接口中創(chuàng)建用戶查詢接口selectStudentsDynamicSQL,注意接口名需要和映射文件中的SQL片段方法id一致。List<Student>selectStudentsDynamicSQL(Map<String,Object>params);[DEBUG]==>Preparing:selectid,name,age,scorefromstudentWHEREnamelike‘%’?‘%’andage>?[DEBUG]==>Parameters:張(String),20(Integer)[TRACE]<==Columns:id,name,age,score[TRACE]<==Row:7,張三,23,93.5[DEBUG]<==Total:1查詢結(jié)果條數(shù):1拓展知識四、SQL動態(tài)查詢4.創(chuàng)建測試方法

@Test publicvoidtestSelectStudentsDynamicSQL(){ Map<String,Object>map=newHashMap<String,Object>(); map.put("name","張"); map.put("age",20); List<Student>students=Dao.selectStudentsDynamicSQL(map); System.out.println("查詢結(jié)果條數(shù):"+students.size());}在MyTest類中完成testSelectStudentsDynamicSQL()測試方法編寫。執(zhí)行測試方法后控制臺輸出信息思考與總結(jié)Mapper映射文件的SQL片段中如何傳遞參數(shù)?如何實現(xiàn)Like模糊查詢?

能力提升通過上一節(jié)的任務(wù),我們完成了對電商網(wǎng)站項目的MyBatis框架環(huán)境搭建,本節(jié)將對電商網(wǎng)站的商品類別進行CRUD操作,請同學們結(jié)合本節(jié)所學內(nèi)容,繼續(xù)完成電商網(wǎng)站項目的以下任務(wù):

創(chuàng)建商品類別表category;

新增一條商品類別數(shù)據(jù),類別名稱為“男裝”;

修改該條商品類別的類別名稱為“女裝”;

查詢所有的商品類別信息;

刪除id為“1”的商品類別。任務(wù)訓(xùn)練1.使用上一節(jié)任務(wù)中創(chuàng)建的商品表與商品實體類;2.完善Dao接口與映射文件,創(chuàng)建新增商品、修改商品、刪除商品方法;3.在Dao接口的實現(xiàn)類中實現(xiàn)商品的CRUD方法;4.創(chuàng)建測試類,測試商品的CRUD方法,與數(shù)據(jù)庫中的數(shù)據(jù)進行比較。《電商web云平臺開發(fā)》感謝觀看!模塊一基礎(chǔ)技能訓(xùn)練模塊《電商web云平臺開發(fā)》思維導(dǎo)圖目錄CONTENTS搭建電商平臺Spring業(yè)務(wù)層搭建電商平臺的web項目SpringMVC展示層搭建電商平臺數(shù)據(jù)處理Mybais項目1234電商平臺SSM三層框架整合項目三

搭建電商平臺數(shù)據(jù)處理Mybais項目項目背景

MyBatis是一款優(yōu)秀的開源持久層框架,是Java中使用較多的ORM框架,兩者可以在同一項目中互補使用。MyBatis的開發(fā)步驟是根據(jù)全局配置文件初始化會話工廠,通過會話工廠開啟會話,從會話對象得到映射器,使用映射器調(diào)用映射的數(shù)據(jù)方法。全局配置文件會話工廠開啟會話會話對象輸入?yún)?shù)映射輸出結(jié)果映射本章節(jié)主要介紹MyBatis框架的相關(guān)知識,需要掌握在項目中使用MyBatis框架的能力。研究內(nèi)容認知MyBatis掌握MyBatis基礎(chǔ)配置文件掌握MyBatis單表CRUD操作掌握MyBatis多表關(guān)聯(lián)操作學習目標1.理解MyBatis框架以及工作原理;2.了解MyBatis與Hibernate區(qū)別;3.認識MyBatis常用標簽以及配置文檔。知識目標1.掌握MyBatis單表CRUD操作;2.掌握Mapper動態(tài)代理開發(fā)技巧;3.掌握MyBatis單表curd操作;4.掌握MyBatis多表關(guān)聯(lián)關(guān)系查詢設(shè)置。技能目標1.通過搭建電商平臺數(shù)據(jù)處理的MyBatis項目培養(yǎng)學生學習開發(fā)語言的興趣;2.通過MyBatis相關(guān)操作的實現(xiàn)來鍛煉學生規(guī)范的編碼能力。素養(yǎng)目標任務(wù)四MyBatis多表關(guān)聯(lián)操作預(yù)備知識一、MyBatis關(guān)聯(lián)查詢分類使用<association>標簽來實現(xiàn)使用<collection>標簽來實現(xiàn)在“多”的一方實體類中添加“一”的對象查詢多對多數(shù)據(jù)時需要進行三張表的關(guān)聯(lián)查詢一對一關(guān)聯(lián)查詢一對多關(guān)聯(lián)查詢多對一關(guān)聯(lián)查詢多對多關(guān)聯(lián)查詢預(yù)備知識二、緩存查詢概念二級查詢緩存使用二級緩存不是共享數(shù)據(jù),而是為了延長該查詢結(jié)果的保存時間,提高系統(tǒng)性能。一級查詢緩存

MyBatis的一級查詢緩存是本地緩存,其作用域是SqlSession。實施準備一對多關(guān)聯(lián)查詢是指,在查詢一方對象的時候,同時將其所關(guān)聯(lián)的多方對象也都查詢出來,比如查詢班級時,將該班級所有的同學信息也查詢出來,請同學們根據(jù)這個一對多的案例,思考生活中其他需要關(guān)聯(lián)查詢的案例并理解,為多表關(guān)聯(lián)查詢的實施做準備。任務(wù)實施與分析步驟1:jdk的安裝和環(huán)境變量的配置步驟1.1:創(chuàng)建MyBatis_demo4程序A數(shù)據(jù)庫配置B日志配置CMyBatis主文件配置創(chuàng)建javaproject程序MyBatis_demo4并導(dǎo)入相關(guān)jar包任務(wù)實施與分析步驟1:jdk的安裝和環(huán)境變量的配置步驟1.2:定義實體/**商品表*/publicclassGoods{ privateIntegergoodsID; //商品ID privateIntegercategoryID; //分類ID privateStringgoodsName; //商品名稱 privateDoublegoodsPrice;//商品價格 privateIntegergoodsStock;//商品庫存privateCategorycategory; //商品類型/**商品類別表*/publicclassCategory{ privateIntegercategoryID;//分類ID privateStringcategoryName;//分類名稱 privateintlevel;//分類級別:1-以及;2-二級 privateIntegerparentID; //父分類ID privateCategoryparent; //父分類 privateList<Category>childList;//二級分類 privateList<Goods>goodsList;//商品列表在定義實體時,若定義的是雙向關(guān)聯(lián),即雙方的屬性中均有對方對象作為域?qū)傩猿霈F(xiàn)。只讓某一方可以輸出另一方即可。任務(wù)實施與分析步驟1:jdk的安裝和環(huán)境變量的配置步驟1.3:定義數(shù)據(jù)庫表在定義實體時,若定義的是雙向關(guān)聯(lián),即雙方的屬性中均有對方對象作為域?qū)傩猿霈F(xiàn)。只讓某一方可以輸出另一方即可。goods表category表任務(wù)實施與分析步驟1:jdk的安裝和環(huán)境變量的配置步驟1.4:定義Dao接口publicinterfaceICategoryDao{

//根據(jù)分類id獲取分類信息 CategoryselectCategoryById(@Param("categoryID")intcategoryID);注意此模塊使用SQL動態(tài)設(shè)置參數(shù),所以Dao接口方法中利用@param注解參數(shù),也可以使用Map接收和傳參。任務(wù)實施與分析步驟1:jdk的安裝和環(huán)境變量的配置步驟1.5:定義測試類在com.framework.test包下創(chuàng)建MyTest測試類,并實現(xiàn)before()和tearDown()方法,定義testSelectCategoryById測試方法。@Test publicvoidtestSelectCategoryById(){ Categorycategory=Dao.selectCategoryById(2); System.out.println("類型名稱:"+category.getCategoryName()); if(category!=null){ List<Goods>goodsList=category.getGoodsList(); for(Goodsgoods:goodsList){ System.out.println("該類型下商品名稱:"+goods.getGoodsName()); } }}任務(wù)實施與分析步驟1:jdk的安裝和環(huán)境變量的配置<!--分類結(jié)果集--> <resultMaptype="Category"id="categoryResultMap"> <idcolumn="categoryID"property="categoryID"/> <resultcolumn="categoryName"property="categoryName"/> <resultcolumn="level"property="level"/> <resultcolumn="parentID"property="parentID"/> <collectionproperty="childList"column="categoryID"ofType="Category"select="selectChildrenByParentId"> <idcolumn="categoryID"property="categoryID"/> </collection> <collectionproperty="goodsList"column="categoryID"ofType="Goods"select="seletGoodsByCategoryID"> <idcolumn="goodsID"property="goodsID"/> <resultcolumn="categoryID"property="categoryID"/>步驟1.6:定義映射方法打開MyBatis_demo4程序下com.framework.Dao包,創(chuàng)建CategoryMapper.xml映射文件并在該文件創(chuàng)建selectCategoryById方法,該方法實現(xiàn)分類信息查詢.任務(wù)實施與分析步驟1:jdk的安裝和環(huán)境變量的配置步驟1.7

溫馨提示

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

評論

0/150

提交評論