JavaEE---------SSH使用实例
今天讲的是整合SSH框架,用一个图书信息小系统来实现,快速帮你构建网站后台
首先我们应该把相应的Struts 2,Hibernate,Spring导入到你的工程中去,下面给出我用的库集合
http://sdrv.ms/178GAJI
把库添加到Build path中去,
先改web.xml,它是整个web应用的核心,不要说不知道在哪里,指明使用Struts2 拦截请求,Spring监听
xmlns:xsi="https://www.doczj.com/doc/ab9307114.html,/2001/XMLSchema-instance"
xsi:schemaLocation="https://www.doczj.com/doc/ab9307114.html,/xml/ns/javaee
https://www.doczj.com/doc/ab9307114.html,/xml/ns/javaee/web-app_3_0.xsd">
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
org.springframework.web.context.ContextLoaderListener
在src目录下创建applicationContext.xml,在连接数据库的时候不要再创建hibernate.cfg.xml,直接用Spring提供的连接方法就好,要不然可能出错(本人经验)
xsi:schemaLocation="https://www.doczj.com/doc/ab9307114.html,/schema/beans https://www.doczj.com/doc/ab9307114.html,/schema/beans/spring-beans-3.0.xsd">
org.hibernate.dialect.MySQLDialect
name="driverClassName" value="com.mysql.jdbc.Driver">
创建Struts 2核心配置文件,不要喷我,我喜欢一个个类那样写,你也可以在一个类中指定不同的方法来处理不同的请求
整体框架就有了,下来就是各个类了
先看实体类及其Hibernate映射文件
Book.java
package com.bq;
/**
* @author 白强
*
*/
public class Book {
private int id;
private String name;
private String detail;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void
setName(String name) {
https://www.doczj.com/doc/ab9307114.html, = name;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
@Override
public String toString() {
return "Book [id=" + id + ", name=" + name + ", detail=" + detail
+ "]";
}
}
Book.hbm.xml
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"https://www.doczj.com/doc/ab9307114.html,/hibernate-mapping-3.0.dtd">
然后是写DAO层
接口BookDAO.java
package com.bq;
import java.util.List;
public interface BookDAO {
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
可以利用它来完成数据库操作
package com.bq;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
* @author 白强
*
*/
public class DAOImplement extends HibernateDaoSupport implements BookDAO{
public DAOImplement() {
}
@Override
public List getAll() {
String sql="from Book";
return this.getHibernateTemplate().find(sql);
}
@Override
public List getBook(int pageSize, int startRow) {
return null;
}
@Override
public List queryBook(String fieldname, String value) {
System.out.println("value: "+value);
String sql="FROM Book where "+fieldname+" like '%"+value+"%'";
return this.getHibernateTemplate().find(sql);
}
@Override
public Book getBook(int id) {
return (Book)this.getHibernateTemplate().get(Book.class,id);
}
@Override
public void addBook(Book book) {
this.getHibernateTemplate().save(book);
}
@Override
public void updateBook(Book book) {
this.getHibernateTemplate().update(book);
}
@Override
public void deleteBook(Book book) {
this.getHibernateTemplate().delete(book);
}
}
写Service层
BookService.java
package com.bq;
import java.util.List;
/**
* @author 白强
*
*/
public class BookService {
pr
ivate BookDAO bookDao;
public BookDAO getBookDao() {
return bookDao;
}
public void setBookDao(BookDAO bookDao) {
this.bookDao = bookDao;
}
/**
* 函数说明:获得一条的信息 参数说明: ID 返回值:对象
*/
public Book getBook(int bookId) {
return bookDao.getBook(bookId);
}
/**
* 函数说明:修改信息 参数说明: 对象 返回值:
*/
public void updateBook(Book book) {
bookDao.updateBook(book);
}
/**
* 函数说明:查询信息 参数说明: 集合 返回值:
*/
public List queryBook(String fieldname, String value) {
return bookDao.queryBook(fieldname, value);
}
public List queryBook() {
return bookDao.getAll();
}
public void addBook(Book book) {
bookDao.addBook(book);
}
public void delBook(Book book) {
bookDao.deleteBook(book);
}
}
这个时候我们的Service就写好了,然后再在控制Action中调用Service的方法就可以了
QueryBook.java 查询得到List
package com.bq;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
/**
* @author 白强
*
*/
public class QueryBook extends ActionSupport {
private Book book;
private BookService service;
private List
public Book getBook() {
return book;
}
public void setBook(Book book) {
this.book = book;
}
public BookService getService() {
return service;
}
public void setService(BookService service) {
this.service = service;
}
public List
return list;
}
public void setList(List
this.list = list;
}
@Override
public String execute() throws Exception {
if(service.queryBook()!=null){
list=service.queryBook();
return SUCCESS;
}
else{
return INPUT;
}
}
}
添加Book
AddBook.java
package com.bq;
import com.opensymphony.xwork2.ActionSupport;
/**
* @author 白强
*
*/
public class AddBook extends ActionSupport{
private Book book;
private BookService service;
public Book getBook() {
return book;
}
public void setBook(Book book) {
this.book = book;
}
public BookService getService() {
return service;
}
public void setService(BookService service) {
this.service = service;
}
@Override
public String execute() throws Exception {
System.out.println(book.toString());
service.addBook(book);
return SUCCESS;
}
}
根据id得到Book
GetBook.java
package com.bq;
import com.opensymphony.xwork2.ActionSupport;
public class GetBook extends
ActionSupport {
private int id;
private Book book;
private BookService service;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Book getBook() {
return book;
}
public void setBook(Book book) {
this.book = book;
}
public BookService getService() {
return service;
}
public void setService(BookService service) {
this.service = service;
}
@Override
public String execute() throws Exception {
if(service.getBook(getId())!=null){
book=service.getBook(getId());
//service.updateBook(b);
return SUCCESS;
}
else{
return INPUT;
}
}
}
根据id更新Book
ChangeBook.java
package com.bq;
import com.opensymphony.xwork2.ActionSupport;
/**
* @author 白强
*
*/
public class ChangeBook extends ActionSupport{
private Book book;
private BookService service;
public Book getBook() {
return book;
}
public void setBook(Book book) {
this.book = book;
}
public BookService getService() {
return service;
}
public void setService(BookService service) {
this.service = service;
}
@Override
public String execute() throws Exception {
System.out.println(book.toString());
if(service.getBook(book.getId())!=null){
Book b=service.getBook(book.getId());
service.updateBook(book);
return SUCCESS;
}
else{
return INPUT;
}
}
}
根据id删除Book
DelBook.java
package com.bq;
import com.opensymphony.xwork2.ActionSupport;
/**
* @author 白强
*
*/
public class DelBook extends ActionSupport {
private int id;
private Book book;
private BookService service;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Book getBook() {
return book;
}
public void setBook(Book book) {
this.book = book;
}
public BookService getService() {
return service;
}
public void setService(BookService service) {
this.service = service;
}
@Override
public String execute() throws Exception {
if(service.getBook(getId())!=null){
service.delBook(service.getBook(getId()));
return SUCCESS;
}
else{
return INPUT;
}
}
}
实现数据库的基本操作 增删改查 即可
最后附上所有的jsp文件
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
ID | 名称 | 描述 | 操作 |
${id} | ${name} | ${detail} |
i="/struts-tags"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>