SSH框架用例.docx

上传人:b****8 文档编号:9819893 上传时间:2023-05-21 格式:DOCX 页数:62 大小:36.02KB
下载 相关 举报
SSH框架用例.docx_第1页
第1页 / 共62页
SSH框架用例.docx_第2页
第2页 / 共62页
SSH框架用例.docx_第3页
第3页 / 共62页
SSH框架用例.docx_第4页
第4页 / 共62页
SSH框架用例.docx_第5页
第5页 / 共62页
SSH框架用例.docx_第6页
第6页 / 共62页
SSH框架用例.docx_第7页
第7页 / 共62页
SSH框架用例.docx_第8页
第8页 / 共62页
SSH框架用例.docx_第9页
第9页 / 共62页
SSH框架用例.docx_第10页
第10页 / 共62页
SSH框架用例.docx_第11页
第11页 / 共62页
SSH框架用例.docx_第12页
第12页 / 共62页
SSH框架用例.docx_第13页
第13页 / 共62页
SSH框架用例.docx_第14页
第14页 / 共62页
SSH框架用例.docx_第15页
第15页 / 共62页
SSH框架用例.docx_第16页
第16页 / 共62页
SSH框架用例.docx_第17页
第17页 / 共62页
SSH框架用例.docx_第18页
第18页 / 共62页
SSH框架用例.docx_第19页
第19页 / 共62页
SSH框架用例.docx_第20页
第20页 / 共62页
亲,该文档总共62页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

SSH框架用例.docx

《SSH框架用例.docx》由会员分享,可在线阅读,更多相关《SSH框架用例.docx(62页珍藏版)》请在冰点文库上搜索。

SSH框架用例.docx

SSH框架用例

Struts2.0、Spring3.0和Hibernate2.0应用实例

Struts2.0作为MVC2的Web框架,自推出以来不断受到开发者的追捧,得到广泛的应用。

作为最成功的Web框架,Struts自然拥有众多的优点:

MVC2模型的使用、功能齐全的标志库(TagLibrary)、开放源代码。

而Spring的出现,在某些方面极大的方面了Struts的开发。

同时,Hibernate作为对象持久化的框架,能显示的提高软件开发的效率与生产力。

这三种流行框架的整合应用,可以发挥它们各自的优势,使软件开发更加的快速与便捷。

struts2发布已经很久了,但关于如何使用它的教程及实例并不多。

特别是与Spring及Hibernate等流行框架的集成,并不多见。

现在就将笔者使用Myeclipse工具应用struts2+spring2+hibernate3实现CRUD操作的步骤一一纪录下来,为初学者少走弯路略尽绵薄之力!

在本文中,笔者将Struts2.0.6、Spring2.0.6和Hibernate3.1进行整合,希望通过这样的整合示例,让读者了解这些框架各自的特点,以便于在自己的项目中,根据实际情况,尽快的过渡到Struts2的时代。

本文的内容基于Struts2.0.6。

一、准备工作

spring2与1.x区别不大,可以平滑的过度,笔者也是把spring1.28换成了spring2.0.6,算是升级到spring2.0了。

struts2基本就是webwork2.2,与以前的struts1.x可以说没任何关系了。

因为是第一次用struts2,也是第一次用webwork,所以有很多不完善,不规范的地方,还望大家来拍砖。

开发环境:

MyEclipse5.0+Eclipse3.2+JDK5.0+

Tomcat5.5+struts2+Spring2.0.6+Hibernate3.1。

本示例通过对一个图书进行管理的系统,提供基本的增加、删除、修改、查询等功能。

lib包需要以下右图所示的这些包。

其中Struts2.0.6的下载地址为:

http:

//people.apache.org/builds/struts/2.0.6

Hibernate3.1的下载地址为:

http:

//www.hibernate.org

spring2.0.6的下载地址为:

http:

//www.springframework.org

使用的数据库为mysql5.0,使用的JDBC驱动JAR包为:

mysql-connection-java-5.0.4-bin

创建数据表的sql语句为:

createdatabasegame

CREATETABLE`books`(

`book_id`int(11)NOTNULLdefault'0',

`book_name`varchar(200)charactersetgb2312defaultNULL,

`book_author`varchar(100)charactersetgb2312defaultNULL,

`book_publish`varchar(100)charactersetgb2312defaultNULL,

`book_date`datedefaultNULL,

`book_isbn`varchar(20)defaultNULL,

`book_page`int(11)defaultNULL,

`book_price`decimal(10,2)defaultNULL,

`book_content`varchar(100)charactersetgb2312defaultNULL,

PRIMARYKEY(`book_id`)

)ENGINE=InnoDBDEFAULTCHARSET=gbkROW_FORMAT=COMPRESSED;

二、建立公共类

1、AbstractAction类

Struts2和Struts1.x的差别,最明显的就是Struts2是一个pull-MVC架构。

Struts1.x必须继承org.apache.struts.action.Action或者其子类,表单数据封装在FormBean中。

Struts2无须继承任何类型或实现任何接口,表单数据包含在Action中,通过Getter和Setter获取。

虽然,在理论上Struts2的Action无须实现任何接口或者是继承任何的类,但是,在实际编程过程中,为了更加方便的实现Action,大多数情况下都会继承com.opensymphony.xwork2.ActionSupport类,并且重载(Override)此类里的Stringexecute()方法。

因此先建立抽象类,以供其它Action类使用。

packagemons;

importcom.opensymphony.xwork2.ActionSupport;

publicclassAbstractActionextendsActionSupport{

}

mons.AbstractAction.java

参考JavaDoc,可知ActionSupport类实现了接口:

com.opensymphony.xwork2.Action

com.opensymphony.xwork2.LoaleProvider

com.opensymphony.xwork2.TextProvider

com.opensymphony.xwork2.Validateable

com.opensymphony.xwork2.ValidationAware

com.uwyn.rife.continuations.ContinuableObject

java.io.Searializable

java.lang.Cloneable

2、Pager分页类

为了增加程序的分页功能,特意建立共用的分页类。

packagemons;

importjava.math.*;

publicclassPager{

privateinttotalRows;//总行数

privateintpageSize=5;//每页显示的行数

privateintcurrentPage;//当前页号

privateinttotalPages;//总页数

privateintstartRow;//当前页在数据库中的起始行

publicPager(){

}

publicPager(int_totalRows){

totalRows=_totalRows;

totalPages=totalRows/pageSize;

intmod=totalRows%pageSize;

if(mod>0){

totalPages++;

}

currentPage=1;

startRow=0;

}

publicintgetStartRow(){

returnstartRow;

}

publicintgetTotalPages(){

returntotalPages;

}

publicintgetCurrentPage(){

returncurrentPage;

}

publicintgetPageSize(){

returnpageSize;

}

publicvoidsetTotalRows(inttotalRows){

this.totalRows=totalRows;

}

publicvoidsetStartRow(intstartRow){

this.startRow=startRow;

}

publicvoidsetTotalPages(inttotalPages){

this.totalPages=totalPages;

}

publicvoidsetCurrentPage(intcurrentPage){

this.currentPage=currentPage;

}

publicvoidsetPageSize(intpageSize){

this.pageSize=pageSize;

}

publicintgetTotalRows(){

returntotalRows;

}

publicvoidfirst(){

currentPage=1;

startRow=0;

}

publicvoidprevious(){

if(currentPage==1){

return;

}

currentPage--;

startRow=(currentPage-1)*pageSize;

}

publicvoidnext(){

if(currentPage

currentPage++;

}

startRow=(currentPage-1)*pageSize;

}

publicvoidlast(){

currentPage=totalPages;

startRow=(currentPage-1)*pageSize;

}

publicvoidrefresh(int_currentPage){

currentPage=_currentPage;

if(currentPage>totalPages){

last();

}

}

}

mons.Pager.java

同时,采用PagerService类来发布成为分页类服务PagerService,代码如下:

packagemons;

publicclassPagerService{

publicPagergetPager(StringcurrentPage,StringpagerMethod,inttotalRows){

//定义pager对象,用于传到页面

Pagerpager=newPager(totalRows);

//如果当前页号为空,表示为首次查询该页

//如果不为空,则刷新pager对象,输入当前页号等信息

if(currentPage!

=null){

pager.refresh(Integer.parseInt(currentPage));

}

//获取当前执行的方法,首页,前一页,后一页,尾页。

if(pagerMethod!

=null){

if(pagerMethod.equals("first")){

pager.first();

}elseif(pagerMethod.equals("previous")){

pager.previous();

}elseif(pagerMethod.equals("next")){

pager.next();

}elseif(pagerMethod.equals("last")){

pager.last();

}

}

returnpager;

}

}

mons.PagerService.java

 

三、建立数据持久化层

1、编写实体类Books及books.hbm.xml映射文件。

packagecom.sterning.books.model;

importjava.util.Date;

publicclassBooks{

//Fields

privateStringbookId;//编号

privateStringbookName;//书名

privateStringbookAuthor;//作者

privateStringbookPublish;//出版社

privateDatebookDate;//出版日期

privateStringbookIsbn;//ISBN

privateStringbookPage;//页数

privateStringbookPrice;//价格

privateStringbookContent;//内容提要

//Constructors

publicBooks(){}

//Propertyaccessors

publicStringgetBookId(){

returnbookId;

}

publicvoidsetBookId(StringbookId){

this.bookId=bookId;

}

publicStringgetBookName(){

returnbookName;

}

publicvoidsetBookName(StringbookName){

this.bookName=bookName;

}

publicStringgetBookAuthor(){

returnbookAuthor;

}

publicvoidsetBookAuthor(StringbookAuthor){

this.bookAuthor=bookAuthor;

}

publicStringgetBookContent(){

returnbookContent;

}

publicvoidsetBookContent(StringbookContent){

this.bookContent=bookContent;

}

publicDategetBookDate(){

returnbookDate;

}

publicvoidsetBookDate(DatebookDate){

this.bookDate=bookDate;

}

publicStringgetBookIsbn(){

returnbookIsbn;

}

publicvoidsetBookIsbn(StringbookIsbn){

this.bookIsbn=bookIsbn;

}

publicStringgetBookPage(){

returnbookPage;

}

publicvoidsetBookPage(StringbookPage){

this.bookPage=bookPage;

}

publicStringgetBookPrice(){

returnbookPrice;

}

publicvoidsetBookPrice(StringbookPrice){

this.bookPrice=bookPrice;

}

publicStringgetBookPublish(){

returnbookPublish;

}

publicvoidsetBookPublish(StringbookPublish){

this.bookPublish=bookPublish;

}

}

com.sterning.books.model.Books.java

接下来要把实体类Books的属性映射到books表,编写下面的books.hbm.xml文件:

xmlversion="1.0"?

>

DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN"

"

com.sterning.books.model.books.hbm.xml

2、hibernate.cfg.xml配置文件如下:

(注意它的位置在scr/hibernate.cfg.xml)

xmlversion="1.0"encoding="ISO-8859-1"?

>

DOCTYPEhibernate-configurationPUBLIC

"-//Hibernate/HibernateConfigurationDTD3.0//EN"

"

true

Com.sterning.bean.hibernate.hibernate.cfg.xml

四、建立DAO层

DAO访问层负责封装底层的数据访问细节,不仅可以使概念清晰,而且可以提高开发效率。

1、建立DAO的接口类:

BooksDao

packagecom.sterning.books.dao.iface;

importjava.util.List;

importcom.sterning.books.model.Books;

publicinterfaceBooksDao{

ListgetAll();//获得所有记录

ListgetBooks(intpageSize,intstartRow);//获得所有记录

intgetRows();//获得总行数

intgetRows(Stringfieldname,Stringvalue);//获得总行数

ListqueryBooks(Stringfieldname,Stringvalue);//根据条件查询

ListgetBooks(Stringfieldname,Stringvalue,intpageSize,intstartRow);//根据条件查询

BooksgetBook(StringbookId);//根据ID获得记录

StringgetMaxID();//获得最大ID值

voidaddBook(Booksbook);//添加记录

voidupdateBook(Booksbook);//修改记录

voiddeleteBook(Booksbook);//删除记录

}

com.sterning.books.dao.iface.BooksDao.java

2、实现此接口的类文件,BooksMapDao

packagecom.sterning.books.dao.hibernate;

importjava.sql.SQLException;

importjava.util.Iterator;

importjava.util.List;

importorg.hibernate.HibernateException;

importorg.hibernate.Query;

importorg.hibernate.Session;

importorg.springframework.orm.hibernate3.HibernateCallback;

importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;

importcom.sterning.books.dao.iface.BooksDao;

importcom.sterning.books.model.Books;

importmons.PublicUtil;

/**

*@authorcwf

*

*/

publicclassBooksMapDaoextendsHibernateDaoSupportimplementsBooksDao{

publicBooksMapDao(){}

/**

*函数说明:

添加信息

*参数说明:

对象

*返回值:

*/

publicvoidaddBook(Booksbook){

this.getHibernateTe

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2