使用整合企業(yè)級(jí)開發(fā)框架9第九章springmvc與mybatis集成_第1頁
使用整合企業(yè)級(jí)開發(fā)框架9第九章springmvc與mybatis集成_第2頁
使用整合企業(yè)級(jí)開發(fā)框架9第九章springmvc與mybatis集成_第3頁
使用整合企業(yè)級(jí)開發(fā)框架9第九章springmvc與mybatis集成_第4頁
使用整合企業(yè)級(jí)開發(fā)框架9第九章springmvc與mybatis集成_第5頁
已閱讀5頁,還剩50頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第九章 Spring

MVC與MyBatis框架集成回顧Spring

3.0擁有自己獨(dú)立的數(shù)據(jù)校驗(yàn)框架,同時(shí)支持JSR303標(biāo)準(zhǔn)的校驗(yàn)框架validation-api是JSR

303官方驅(qū)動(dòng)包hibernate-validator是Hibernate對(duì)JSR

303的封裝包<mvc:annotation-driven/>配置是自動(dòng)注冊(cè)SpringMVC所需的驅(qū)動(dòng),并通過LocalValidatorFactory注入校驗(yàn)框架在控制器中不僅可以使用ModelAndView對(duì)象傳參和跳轉(zhuǎn),還能使用Servlet

API入?yún)⒁晥D層一般使用form標(biāo)簽結(jié)合JSTL標(biāo)簽、EL表達(dá)式一同使用本章內(nèi)容1MyBatis

Generator自動(dòng)工具2Spring

MVC、MyBatis框架整合1使用MyBatis

Generator自動(dòng)生成源代碼2SMM框架整合3Mapper

DAO3完成客戶信息維護(hù)功能1.

使用MG工具包,完成數(shù)據(jù)模型和數(shù)據(jù)庫訪問層代碼生成踐習(xí)實(shí)練Spring

MVC和MyBatis整合框架的特點(diǎn)MyBatis

Generator簡介使用MyBatis

Generator工具自動(dòng)生成源代碼技術(shù)講解講解時(shí)間:

30分鐘實(shí)踐時(shí)間:

30分鐘9.1使用Generator自動(dòng)工具:內(nèi)容預(yù)覽9.1.1整合框架的特點(diǎn)使用SpringMVC和MyBatis框架整合是常用的一種項(xiàng)目架構(gòu)。由于加入了MyBatis框架,而優(yōu)勢更大簡單、靈活、易于擴(kuò)展避免了復(fù)雜的緩存機(jī)制,在程序運(yùn)行效率方面也得到了相應(yīng)的提高。Spring

3.0注解支持,從而提高程序的開發(fā)效率。9.1.2

MyBatis

Generator簡介MyBatis

Generator它是MyBatis官方提供的工具包,類似于之前所學(xué)的

Hibernate,通過數(shù)據(jù)庫中的表生成映射文件,它包括

Entity、DAO類和Mapper

XML配置文件<generatorCon<figpurorapteiortny>name="trimStrings"

value="true"

/><class<P/javhaEMnotrdyelloGceantieorna=to"

r">/><cont<esxqtlMid=ap""GtaerngeertaRtourntaimrgee=t"P"a>ckage=""

targetProject=""><com<mperonptGeretynenraamtoer=>"enableSubPackages"value="true"

/></sqlM<parpoGpenrteyrnaatomr>e="suppressAllComments"

value="true"

/><jamveanCtlGieenntGereantoerr>atortype="XMLMAPPER"<jdbctCarognentPecatcioknagderi=v"e"rtCalragsest=P“r”ocjeocnt=ne""c>tionURL=“”

userId=“”<pparsospwerotrydn=a“”m/>e="enableSubPackages"

value="true"

/></jjaavvaaTCylpieenRtGeseonlevrear>tor><table<ptarobpleeNrtaymnea=m"e"

=d"ofmoracienBOigbDjeecctNimaamlse"=v"a">lu<e/t=a"bfalels>e"

/></con<te/jxatv>aTypeResolver></generato<rjCaovanMfigoudraetlGioenn>erator

targetPackage=""

targetProject=""><property

name="enableSubPackages"

value="true"

/>9.1.2

MyBatis

Generator簡介Generator結(jié)構(gòu)對(duì)關(guān)鍵配置元素和屬性進(jìn)行如下解釋屬性名 說明classPathEntry

連接數(shù)據(jù)庫的驅(qū)動(dòng)包,驅(qū)動(dòng)包通常與配置文件位于同一路徑commentGenerator

指定生成注解的模板,suppressAllComments=true表示去掉自動(dòng)生成的代碼注釋jdbcConnection

指定數(shù)據(jù)庫的連接信息javaTypeResolver

java類型轉(zhuǎn)換器javaModelGenerator

指定數(shù)據(jù)模型(實(shí)體類)的生成信息屬性名說明sqlMapGenerator指定sqlMapper

XML文件的生成路徑j(luò)avaClientGenerator指定DAO類生成的路徑table配置反向生成的表信息(1)tablename屬性:匹配數(shù)據(jù)庫中的表名。(2)domainObjectName屬性:自動(dòng)生成的文件頭名稱,通常該配置的首字母大寫。targetPackage屬性:指定實(shí)體類生成的包,如

com.mstf.smm.entity。targetProject屬性:指定實(shí)體類實(shí)際生成的物理位置,可以配置相對(duì)或絕對(duì)路徑。9.1.2

MyBatis

Generator簡介Generator自動(dòng)生成要使用Java命令執(zhí)行生成,才能得到Entity、DAO類和MapperXML配置文件java-jar

mybatis-generator-core.jar-configfile

Generator配置文件-overwrite9.1.3使用Generator工具自動(dòng)生成源代碼使用MyBatis

Generator工具自動(dòng)生成源代碼本案例使用MyBatis提供的Generator工具包反向生成代碼。導(dǎo)入所需要的Jar包文件;編寫Generator配置文件屬性最后,使用Java命令執(zhí)行生成1.在src目錄中,創(chuàng)建名為“aotu”的包。導(dǎo)入(復(fù)制)所需要的jar包文件包名說明mybatis-3.1.1.jar所需的驅(qū)動(dòng)mybatis-generator-core-1.3.2.jarGenerator工具包的驅(qū)動(dòng)mysql-connector-java-5.1-bin.jarMySql數(shù)據(jù)庫連接驅(qū)動(dòng)為了降低程序的復(fù)雜性,我們將生成時(shí)所需的文件統(tǒng)一存放于auto包內(nèi)。使用Java命令時(shí),文件直接生成到src中。9.1.3使用Generator工具自動(dòng)生成源代碼<property

name="suppressAllComments"

value="true"

/><mentGenerator><jdbcConnection

driverClass=“com.mysql.jdbc.Driver”connectionURL=“jdbc:mysql://localhost:3306/mstf”

userId=“root”password=“”/><javaTypeResolver><property

name="forceBigDecimals"

value="false"/></javaTypeResolver><javaModelGeneratortargetPackage=“com.mstf.smm.entity”targetProject=“../">2.在aotu包中,創(chuàng)建config.xml文件,編寫Generator配置文件屬性MySql驅(qū)動(dòng)<generatorConfiguration><classPathEntry

location="mysql-connector-java-5.1.13-bin.jar"

/><contextid="MySqlTables"targetRuntime="MyBatis3"><commentGenerator>連接信息數(shù)據(jù)模型類,生成位置(包)相對(duì)路徑的上一層目錄9.1.3使用Generator工具自動(dòng)生成源代碼2.在aotu包中,創(chuàng)建config.xml文件,編寫Generator配置文件屬性<property

name="trimStrings"

value="true"/></javaModelGenerator><sqlMapGeneratortargetPackage="com.mstf.smm.dao"targetProject=“../"><javaClientGenerator

type="XMLMAPPER"targetPackage="com.mstf.smm.dao"targetProject=“../"><property

name="enableSubPackages"

value="true"

/></javaClientGenerator><table

tableName="customer"

domainObjectName="Customer"></table></context></generatorConfiguration><property

name="enableSubPackages"value="falseD"A/>O類生產(chǎn)的路徑和包MapperXML類生產(chǎn)<property

name="enableSubPackages"value="true"/>

的路徑和包</sqlMapGenerator>要生產(chǎn)的表名要生產(chǎn)的類名9.1.3使用Generator工具自動(dòng)生成源代碼3.完成后,查看工程的結(jié)構(gòu)9.1.3使用Generator工具自動(dòng)生成源代碼4.

使用java命令,執(zhí)行配置腳本。打開MS-DOS窗口,將當(dāng)前路徑指向到auto目錄下,執(zhí)行java命令。當(dāng)最后控制臺(tái)輸出“MyBatis

Generator

finished

successfully.”時(shí),表示正確生成配置9.1.3使用Generator工具自動(dòng)生成源代碼5.在工程名上,單擊“右鍵”選擇“refrash”刷新工程。此時(shí),工程中會(huì)出現(xiàn)兩個(gè)包,此即為使用Generator工具包生成的結(jié)果9.1.3使用Generator工具自動(dòng)生成源代碼5.生成的文件清單如下:包名說明Customer數(shù)據(jù)模型(實(shí)體)類CustomerExample針對(duì)DML語句中where子句的輔助類,非常實(shí)用CustomerMapper數(shù)據(jù)庫訪問層,它封裝了單表的DML操作CustomerMapper.xmlSQL語句的映射文件當(dāng)我們?cè)贛S-DOS窗口重復(fù)執(zhí)行命令時(shí),所有自動(dòng)生成的java文件都是重新生成、且覆蓋以前的文件。但是,Mapper.xml文件不會(huì)重新生成,而是將文檔內(nèi)容追加,產(chǎn)生重復(fù)的配置代碼。此時(shí),再次啟動(dòng)服務(wù)器時(shí),控制臺(tái)會(huì)報(bào)錯(cuò)。所以,建議同學(xué)們重新執(zhí)行Java命令前,首先要?jiǎng)h除現(xiàn)有的Mapper.xml文件。9.1.3使用Generator工具自動(dòng)生成源代碼9.1.4學(xué)生實(shí)踐練習(xí)實(shí)踐時(shí)間:

30分鐘使用MyBatisGenerator工具包,完成數(shù)據(jù)模型和數(shù)據(jù)庫訪問層代碼生成。對(duì)數(shù)據(jù)庫中,goods表的反向生成9.1.4學(xué)生實(shí)踐練習(xí)在mysql數(shù)據(jù)庫中,創(chuàng)建名為“goods”的商品表。創(chuàng)建Web工程,命名為“goodsProject”。在src目錄中,創(chuàng)建auto包。在auto包中,導(dǎo)入(復(fù)制)所需要的jar包文件。在aotu包中,創(chuàng)建config.xml文件,編寫Generator配置文件屬性。在MS-DOS中,執(zhí)行Java命令完成反向生成。1.

搭建SMM框架,完成商品信息查詢功能踐習(xí)實(shí)練Spring

3.0在各層中使用的注解SMM架構(gòu)整合搭建和使用技術(shù)講解講解時(shí)間:

45分鐘實(shí)踐時(shí)間:

30分鐘9.2

SMM框架整合:內(nèi)容預(yù)覽9.2.1

Spring

3.0在各層中使用的注解Spring3.0采用全注解的方式開發(fā),被注解后,不需要使用<bean>進(jìn)行注入,如此減少了配置環(huán)節(jié),提高了開發(fā)效率。使用步驟如下:在spring配置文件中,使用<ponent-scan>自動(dòng)掃描注解,如@Repository、@Autowired等。依次在各層中,使用@Repository、@Service和@Controller注解。在依賴類中,使用@Autowired對(duì)接口聲明@Autowired@Autowired注解用于自動(dòng)裝配對(duì)象,類似于在

applicationContext.xml文件中注入對(duì)象@Autowiredprivate

Objectobj;9.2.1

Spring

3.0在各層中使用的注解SMM架構(gòu)整合搭建和使用1.

在web工程中,添加Spring支持,選擇Core

Libraries、AOP

Libraries、Persistence

Core和Web

Libraries支持。其中,Persistence

Core代表對(duì)持久化框架的支持,并非特指Hibernate框架,所以需要添加Persistence

Core。9.2.2

SMM架構(gòu)整合搭建和使用2.在lib文件夾下,導(dǎo)入(復(fù)制)所需要的jar包文件。其中,mybatis-spring-1.1.1.jar用于整合所需要的關(guān)鍵包9.2.2

SMM架構(gòu)整合搭建和使用包名說明commons-dbcp.jarApache提供的DBCP數(shù)據(jù)源commons-pool-1.5.4.jarDBCP數(shù)據(jù)源中連接池的實(shí)現(xiàn)mybatis-3.1.1.jarMyBatis

3.1驅(qū)動(dòng)mybatis-spring-1.1.1.jar由MyBatis提供的Spring被整合包mysql-connector-java-5.1-bin.jarMySql數(shù)據(jù)庫連接驅(qū)動(dòng)jstl.jarJSTL支持standard.jarJSTL支持3.在src目錄中,創(chuàng)建MyBatis配置文件。因?yàn)榧軜?gòu)整合的原因,我們只需要配置Mappers映射即可9.2.2

SMM架構(gòu)整合搭建和使用sqlMapConfig.xml文件<configuration><mappers><mapper

resource="com/mstf/smm/dao/CustomerMapper.xml"

/></mappers></configuration>每個(gè)mapper配置一個(gè)映射文件路徑4.在viewSpace-servlet.xml文件中,添加Spring配置信息9.2.2

SMM架構(gòu)整合搭建和使用<beans

xmlns=""xmlns:xsi="

"xmlns:mvc="

"xmlns:p="

"xmlns:context="

"xmlns:tx="

" xmlns:aop="

"xsi:schemaLocation="">添加Spring對(duì)mvc、context、tx和aop的支持4.

在viewSpace-servlet.xml文件中,添加Spring配置信息9.2.2

SMM架構(gòu)整合搭建和使用<mvc:annotation-driven

/><ponent-scan

base-package="com.mstf.smm"

/><bean

id="dataSource"

class="

mons.dbcp.BasicDataSource"><property

name="driverClassName"

value="com.mysql.jdbc.Driver“/><property

name="url"value="jdbc:mysql://localhost:3306/mstf?useUnicode=true&characterEncoding=utf-8“/><property

name="username"

value="root"></property><property

name="password"value=""></property></bean><bean

id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><property

name="configLocation"

value="classpath:sqlMapConfig.xml"

/><property

name="dataSource"

ref="dataSource"></property></bean>自動(dòng)注冊(cè)SpringMVC所需的所有驅(qū)動(dòng)配置dbcp數(shù)據(jù)源,通過數(shù)據(jù)源管理數(shù)據(jù)庫連接管理MyBatis

Session工廠以上四個(gè)步驟,可以使用Spring對(duì)SpringMVC和MyBatis框架整合過程全部完成。9.2.2

SMM架構(gòu)整合搭建和使用9.2.2

SMM架構(gòu)整合搭建和使用實(shí)現(xiàn)員工信息添加功能本案例實(shí)現(xiàn)對(duì)員工信息添加操作,具體步驟如下:在CustomerMapper接口中,添加@Repository注解在viewSpace-servlet.xml文件中,添加對(duì)CustomerMapper的配置信息在service包中,創(chuàng)建CustomerService業(yè)務(wù)處理類。添加@service注解,并通過@Autowired實(shí)現(xiàn)對(duì)數(shù)據(jù)庫訪問層的調(diào)用在action包中,創(chuàng)建CustomerController控制器類。處理頁面添加請(qǐng)求在WebRoot目錄中,創(chuàng)建index.jsp頁面,編寫注冊(cè)表單9.2.2

SMM架構(gòu)整合搭建和使用1.在CustomerMapper接口中,添加@Repository注解CustomerMapper.java@Repositorypublic

interface

CustomerMapper

{int

countByExample(CustomerExample

example);//省略……}9.2.2

SMM架構(gòu)整合搭建和使用<bean

id="customerMapper“class="org.mybatis.spring.mapper.MapperFactoryBean"><property

name="mapperInterface"value="com.mstf.smm.dao.CustomerMapper"

/><property

name="sqlSessionFactory"

ref="sqlSessionFactory"

/></bean>2.在viewSpace-servlet.xml文件中,添加對(duì)

CustomerMapper的配置信息引入DAO接口,產(chǎn)生DAO實(shí)現(xiàn)類,并動(dòng)態(tài)獲得sqlSessionFactory對(duì)象viewSpace-servlet.xml在注入中,對(duì)Mapper(DAO)實(shí)施注入,并引用sqlSessionFactoryBean。在項(xiàng)目中,要對(duì)每一個(gè)Mapper接口分別配置。它們的注入順序是:

dataSource→sqlSessionFactory→xxMapper。3.在service包中,創(chuàng)建CustomerService業(yè)務(wù)處理類。添加@service注解,并通過@Autowired實(shí)現(xiàn)對(duì)數(shù)據(jù)庫訪問層的調(diào)用9.2.2

SMM架構(gòu)整合搭建和使用CustomerService.java@Servicepublic

class

CustomerService

{@Autowiredprivate

CustomerMapper

customerMapper;public

int

addCustomers(Customer

cus)

{return

customerMapper.insert(cus);}}使用@Autowired自動(dòng)注解4.在action包中,創(chuàng)建CustomerController控制器類。處理頁面的添加請(qǐng)求9.2.2

SMM架構(gòu)整合搭建和使用CustomerController.java@Controller@RequestMapping(value="/")public

class

CustomerColltroller

{@Autowiredprivate

CustomerService

customerService;@RequestMapping(value="/reg")public

String

reg(@ModelAttribute("customer")

Customer

cus){customerService.addCustomers(cus);return"/index.jsp";}}使用@Autowired自動(dòng)注解9.2.2

SMM架構(gòu)整合搭建和使用5.

在WebRoot目錄中,創(chuàng)建index.jsp頁面,編寫注冊(cè)表單index.jsp<form

action="reg.form"method="post"><table><tr><td>姓名:</td><td><input

name="cusName"

type="text"

/></td></tr>……<tr><td

colspan="2"

align="center"><input

type="submit"

value="添加客戶"/></td></tr></table></form>6.

在瀏覽器地址欄中,輸入地址。填寫注冊(cè)表單7.

打開mysql客戶端工具,客戶信息已經(jīng)添加到customer表9.2.2

SMM架構(gòu)整合搭建和使用CustomerMapper只是一個(gè)接口,而我們要在Service類中對(duì)其進(jìn)行實(shí)例化調(diào)用,那么MyBatis是如何做到的呢?在Spring配置中,使用MapperFactoryBean對(duì)象創(chuàng)建動(dòng)態(tài)代理類實(shí)現(xiàn)CustomerMapper接口,并注入到程序中9.2.2

SMM架構(gòu)整合搭建和使用9.2.3學(xué)生實(shí)踐練習(xí)實(shí)踐時(shí)間:

30分鐘搭建SMM框架,完成商品信息查詢功能。當(dāng)用戶輸入商品ID時(shí),在新頁面顯示查詢商品的信息9.2.3學(xué)生實(shí)踐練習(xí)參考本教材第8章的8.2小節(jié),完成SMM項(xiàng)目架構(gòu)搭建。在GoodsMapper接口中,添加@Repository注解。在viewSpace-servlet.xml文件中,添加對(duì)CustomerMapper的配置信息在service包中,創(chuàng)建GoodsService業(yè)務(wù)處理類。添加@service注解,通過@Autowired實(shí)現(xiàn)對(duì)下層的訪問。在action包中,創(chuàng)建GoodsController控制器類。處理頁面的查詢請(qǐng)求在WebRoot目錄中,創(chuàng)建index.jsp頁面。填寫商品ID在WebRoot目錄中,創(chuàng)建details.jsp頁面,編寫簡單表單,注冊(cè)客戶信息在瀏覽器地址欄中,輸入地址,查看運(yùn)行結(jié)果。1.

改進(jìn)“商品信息管理”案例,完成商品表信息修改功能踐習(xí)實(shí)練Mapper

DAO方法詳解完成客戶信息列表完成客戶信息組合查詢技術(shù)講解講解時(shí)間:

20分鐘實(shí)踐時(shí)間:

25分鐘9.3

Mapper

DAO:內(nèi)容預(yù)覽9.3.1

Mapper

DAO方法詳解Mapper

DAO方法使用Generator自動(dòng)工具生成時(shí),系統(tǒng)產(chǎn)生了一個(gè)Mapper類,它封裝了DML的常用方法。方法名說明countByExample通過任意查詢條件,返回表中的數(shù)據(jù)行數(shù)deleteByExample通過任意條件刪除表數(shù)據(jù),返回受影響的行數(shù)deleteByPrimaryKey通過主鍵刪除表數(shù)據(jù),返回受影響的行數(shù)insert全字段添加數(shù)據(jù),返回受影響的行數(shù)insertSelective任意字段添加數(shù)據(jù),返回受影響的行數(shù)selectByExample通過任意條件查詢數(shù)據(jù),返回List結(jié)果集selectByPrimaryKey通過主鍵查詢數(shù)據(jù),返回實(shí)體對(duì)象updateByExampleSelective通過任意條件更新表數(shù)據(jù),返回受影響的行數(shù)updateByExample更新全字段的數(shù)據(jù),返回受影響的行數(shù)updateByPrimaryKeySelective通過主鍵更新表任意字段數(shù)據(jù),返回受影響的行數(shù)updateByPrimaryKey通過主鍵更新表全字段數(shù)據(jù),返回受影響的行數(shù)9.3.1

Mapper

DAO方法詳解Example參數(shù)在方法中使用了大量的Example作為參數(shù),該如何使用?通過cus_name字段查詢結(jié)果集MyBatis代碼CustomerExample

example=new

CustomerExample();example.createCriteria().andCusNameEqualTo("穆勒");List<Customer>list=customerMapper.selectByExample(example);SQL語句輸出select

cus_id,

cus_name,

cus_birthday,

cus_grade

from

customerWHERE

(

cus_name

=

?

)9.3.1

Mapper

DAO方法詳解通過cus_name字段模糊匹配,更新cus_grade,返回結(jié)果集MyBatis代碼Customer

customer

=

new

Customer();customer.setCusGrade("NONE");CustomerExample

example=new

CustomerExample();example.createCriteria().andCusNameLike("穆%");int

count

=

customerMapper.updateByExampleSelective(customer,example);SQL語句輸出update

customer

SETcus_grade

=

?

WHERE

(

cus_name

like

?

)9.3.1

Mapper

DAO方法詳解通過cus_name和cus_grade字段查詢,并通過cus_id倒序結(jié)果集MyBatis代碼CustomerExample

example

=

new

CustomerExample();example.createCriteria().andCusNameEqualTo("jack");example.or(example.createCriteria().andCusGradeEqualTo("VIP"));example.setOrderByClause("cus_id

desc");List<Customer>

list

=

customerMapper.selectByExample(example);SQL語句輸出select

cus_id,

cus_name,

cus_birthday,

cus_grade

from

customerWHERE

(

cus_name

=

?

)

or(

cus_grade

=

?

)

order

by

cus_id

desc9.3.2完成客戶信息列表顯示客戶信息列表功能本案例要求實(shí)現(xiàn)客戶信息列表功能。開啟Spring

MVC框架對(duì)JSTL標(biāo)簽庫的支持;依次編寫數(shù)據(jù)庫訪問層、業(yè)務(wù)邏輯層和控制層的代碼;最后,在頁面中使用JSTL,結(jié)合EL表達(dá)式渲染9.3.2完成客戶信息列表1.在viewSpace-servlet.xml文件中,添加視圖層對(duì)JSTL標(biāo)簽庫的支持viewSpace-servlet.xml<beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property

name="viewClass"value="org.springframework.web.servlet.view.JstlView"></property></bean>9.3.2完成客戶信息列表2.

在CustomerService類中,編寫獲取用戶列表的方法3.

在CustomerController類中,編寫控制器方法,通過request保存輸出結(jié)果集4.在index.jsp頁面中,添加跳轉(zhuǎn)鏈接,請(qǐng)求控制器中的all()方法CustomerSCeornvtircoell.exrm.jal

vap@uRbleicqLuiesst<tMCaupsptoinmge(vr>alfuined=C"/uasll"to)

mers()

{CpubsltiocmSetrriEnxgaamll(pHlettpeSxaemrvpleletR=eqnueewsCt

ruesqtuoemset)rE{

xample();returnrecquusetosmt.seertMAattpripbeurt.es(e"lceucstBLiysEt"x,

acmusptloem(eexraSmerpvleic)e;

.findCustomers());return

"display.jsp";}}index.jsp<a

href="all.form">查看客戶信息列表</a>9.3.2完成客戶信息列表5.在WebRoot目錄中,創(chuàng)建display.jsp文件,接收并渲染結(jié)果集display.jsp<%@

taglib

uri="

"

prefix="c"

%><%@

taglib

uri="

"

prefix="fmt"

%>……<table

border="1"

width="500"

align="center">……<c:forEach

var="cus"

items="${cusList}"

varStatus="vs"><tr><td>${vs.count}</td><td>${cus.cusName}</td><td><fmt:formatDate

value="${cus.cusBirthday}"pattern="yyyy年MM月dd日"/></td><td>${cus.cusGrade}</td></tr></c:forEach></table>日期類型格式化9.3.3完成客戶信息組合查詢實(shí)現(xiàn)客戶信息組合查詢功能本案例在客戶列表基礎(chǔ)上,增加信息的組合查詢功能。對(duì)“用戶名”和“客戶級(jí)別”字段進(jìn)行組合查詢,如果直接點(diǎn)擊“查找”按鈕,則查詢出所有客戶信息;當(dāng)輸入一個(gè)條件時(shí),則按單條件查詢?nèi)绻斎雰蓚€(gè)條件,將使用AND多條件查詢9.3.3完成客戶信息組合查詢public

List<Customer>

findByProperty(Customercus){CustomerExample

example

=

new

CustomerExample();Criteria

c=

example.createCriteria();if(!"請(qǐng)選擇".equals(cus.getCusGrade())) //

等級(jí)條件匹配c.andCusGradeEqualTo(cus.getCusGrade()); //

and條件拼接if(!"".equals(cus.getCusName())) //

姓名條件模糊匹配c.andCusNameLike("%"

+

cus.getCusName()

+

"%");return

customerMapper.selectByExample(example);}1.在CustomerService類中,編寫findByProperty方法,接收查詢參數(shù),返回查詢列表客戶信息條件查詢CustomerService.java9.3.3完成客戶信息組合查詢2.在CustomerController類中,編寫search方法,接收查詢參數(shù),返回查詢結(jié)果集CustomerController.java@RequestMapping(value="/search")public

String

search(@ModelAttribute("customer")

Customer

cus,HttpServletRequest

request)

{request.setAttribute("cusList",

customerService.findByProperty(cus));return

"display.jsp";}將查詢結(jié)果保存到request對(duì)象中9.3.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論