今天讲的是整合SSH框架,用一个图书信息小系统来实现,快速帮你构建网站后台
首先我们应该把相应的Struts 2,Hibernate,Spring导入到你的工程中去,下面给出我用的库集合
把库添加到Build path中去,
先改web.xml,它是整个web应用的核心,不要说不知道在哪里,指明使用Struts2 拦截请求,Spring监听
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
index.jsp
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
在src目录下创建applicationContext.xml,在连接数据库的时候不要再创建hibernate.cfg.xml,直接用Spring提供的连接方法就好,要不然可能出错(本人经验)
com/bq/Book.hbm.xml
org.hibernate.dialect.MySQLDialect
true
创建Struts 2核心配置文件,不要喷我,我喜欢一个个类那样写,你也可以在一个类中指定不同的方法来处理不同的请求
/show.jsp
/index.jsp
/book.jsp
/index.jsp
query
/book.jsp
query
/show.jsp
query
/show.jsp
整体框架就有了,下来就是各个类了
先看实体类及其Hibernate映射文件
Book.java
packagecom.bq;/***@author白强
**/
public classBook {private intid;privateString name;privateString detail;public intgetId() {returnid;
}public void setId(intid) {this.id =id;
}publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}publicString getDetail() {returndetail;
}public voidsetDetail(String detail) {this.detail =detail;
}
@OverridepublicString toString() {return "Book [id=" + id + ", name=" + name + ", detail=" +detail+ "]";
}
}
Book.hbm.xml
/p>
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
然后是写DAO层
接口BookDAO.java
packagecom.bq;importjava.util.List;public interfaceBookDAO {
List getAll();//获得所有记录
List getBook(int pageSize, int startRow);//获得所有记录
List queryBook(String fieldname,String value);//根据条件查询
Book getBook(int id);//根据ID获得记录
void addBook(Book book);//添加记录
void updateBook(Book book);//修改记录
void deleteBook(Book book);//删除记录
}
DAO实现类
DAOImplement.java,里面用到
this.getHibernateTemplate()的方法来自Spring
可以利用它来完成数据库操作
packagecom.bq;importjava.util.List;importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;/***@author白强
**/
public class DAOImplement extends HibernateDaoSupport implementsBookDAO{publicDAOImplement() {
}
@OverridepublicList getAll() {
String sql="from Book";return this.getHibernateTemplate().find(sql);
}
@Overridepublic List getBook(int pageSize, intstartRow) {return null;
}
@OverridepublicList queryBook(String fieldname, String value) {
System.out.println("value: "+value);
String sql="FROM Book where "+fieldname+" like '%"+value+"%'";return this.getHibernateTemplate().find(sql);
}
@Overridepublic Book getBook(intid) {return (Book)this.getHibernateTemplate().get(Book.class,id);
}
@Overridepublic voidaddBook(Book book) {this.getHibernateTemplate().save(book);
}
@Overridepublic voidupdateBook(Book book) {this.getHibernateTemplate().update(book);
}
@Overridepublic voiddeleteBook(Book book) {this.getHibernateTemplate().delete(book);
}
}
写Service层
BookService.java
packagecom.bq;importjava.util.List;/***@author白强
**/
public classBookService {privateBookDAO bookDao;publicBookDAO getBookDao() {returnbookDao;
}public voidsetBookDao(BookDAO bookDao) {this.bookDao =bookDao;
}/*** 函数说明:获得一条的信息 参数说明: ID 返回值:对象*/
public Book getBook(intbookId) {returnbookDao.getBook(bookId);
}/*** 函数说明:修改信息 参数说明: 对象 返回值:*/
public voidupdateBook(Book book) {
bookDao.updateBook(book);
}/*** 函数说明:查询信息 参数说明: 集合 返回值:*/
publicList queryBook(String fieldname, String value) {returnbookDao.queryBook(fieldname, value);
}publicList queryBook() {returnbookDao.getAll();
}public voidaddBook(Book book) {
bookDao.addBook(book);
}public voiddelBook(Book book) {
bookDao.deleteBook(book);
}
}
这个时候我们的Service就写好了,然后再在控制Action中调用Service的方法就可以了
QueryBook.java 查询得到List
packagecom.bq;importjava.util.List;importcom.opensymphony.xwork2.ActionSupport;/***@author白强
**/
public class QueryBook extendsActionSupport {privateBook book;privateBookService service;private Listlist;publicBook getBook() {returnbook;
}public voidsetBook(Book book) {this.book =book;
}publicBookService getService() {returnservice;
}public voidsetService(BookService service) {this.service =service;
}public ListgetList() {returnlist;
}public void setList(Listlist) {this.list =list;
}
@Overridepublic String execute() throwsException {if(service.queryBook()!=null){
list=service.queryBook();returnSUCCESS;
}else{returnINPUT;
}
}
}
添加Book
AddBook.java
packagecom.bq;importcom.opensymphony.xwork2.ActionSupport;/***@author白强
**/
public class AddBook extendsActionSupport{privateBook book;privateBookService service;publicBook getBook() {returnbook;
}public voidsetBook(Book book) {this.book =book;
}publicBookService getService() {returnservice;
}public voidsetService(BookService service) {this.service =service;
}
@Overridepublic String execute() throwsException {
System.out.println(book.toString());
service.addBook(book);returnSUCCESS;
}
}
根据id得到Book
GetBook.java
packagecom.bq;importcom.opensymphony.xwork2.ActionSupport;public class GetBook extendsActionSupport {private intid;privateBook book;privateBookService service;public intgetId() {returnid;
}public void setId(intid) {this.id =id;
}publicBook getBook() {returnbook;
}public voidsetBook(Book book) {this.book =book;
}publicBookService getService() {returnservice;
}public voidsetService(BookService service) {this.service =service;
}
@Overridepublic String execute() throwsException {if(service.getBook(getId())!=null){
book=service.getBook(getId());//service.updateBook(b);
returnSUCCESS;
}else{returnINPUT;
}
}
}
根据id更新Book
ChangeBook.java
packagecom.bq;importcom.opensymphony.xwork2.ActionSupport;/***@author白强
**/
public class ChangeBook extendsActionSupport{privateBook book;privateBookService service;publicBook getBook() {returnbook;
}public voidsetBook(Book book) {this.book =book;
}publicBookService getService() {returnservice;
}public voidsetService(BookService service) {this.service =service;
}
@Overridepublic String execute() throwsException {
System.out.println(book.toString());if(service.getBook(book.getId())!=null){
Book b=service.getBook(book.getId());
service.updateBook(book);returnSUCCESS;
}else{returnINPUT;
}
}
}
根据id删除Book
DelBook.java
packagecom.bq;importcom.opensymphony.xwork2.ActionSupport;/***@author白强
**/
public class DelBook extendsActionSupport {private intid;privateBook book;privateBookService service;public intgetId() {returnid;
}public void setId(intid) {this.id =id;
}publicBook getBook() {returnbook;
}public voidsetBook(Book book) {this.book =book;
}publicBookService getService() {returnservice;
}public voidsetService(BookService service) {this.service =service;
}
@Overridepublic String execute() throwsException {if(service.getBook(getId())!=null){
service.delBook(service.getBook(getId()));returnSUCCESS;
}else{returnINPUT;
}
}
}
实现数据库的基本操作 增删改查 即可
最后附上所有的jsp文件
index.jsp
Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>
">
欢迎欢迎来到SSH整合测试页面
点击进入 增加书