【SSH】:基于Struts2+HIbernate3+Spring3实现员工管理系统之框架整合篇

       SSH知识点回顾

       这个不用多说,老师画的一张图还是可以的:

 【SSH】:基于Struts2+HIbernate3+Spring3实现员工管理系统之框架整合篇_第1张图片

       搭建SSH开发环境

       版本比较旧,但是方法还是好的,给初学者还是很大帮助的。

       SSH整合的三种方式:

       1、带有HIbernate配置文件的方式

       2、不带有HIbernate配置文件的方式

       3、纯注解的

       这一次我们采用第二种方式来进行SSH框架整合。

       步骤一:创建web项目并引入相应的jar包

       Struts2框架开发的相应的jar包

       一般我们都去这个路径下struts-2.3.31\apps\struts2-blank\WEB-INF\lib索取开发的jar包:

       【SSH】:基于Struts2+HIbernate3+Spring3实现员工管理系统之框架整合篇_第2张图片

       然后再去struts-2.3.31\lib索取其它比较重要的jar包:

       struts2-convention-plugin-2.3.31.jar:Struts2的注解开发的jar包

       struts2-spring-plugin-2.3.31.jar:Struts2用于整合Spring的jar包

       HIbernate框架开发的相应的jar包

       我们使用的Hibernate版本是hibernate-release-3.3.1.Final。

       hibernate-release-3.3.1.Final\lib\required\*.jar

       hibernate-release-3.3.1.Final\lib\jpa\*.jar

       Spring框架开发的相应的jar包

       spring-framework-3.2.0.RELEASE

       做Spring基本开发需要引入的jar包:

       IoC

       spring-beans-3.2.0.RELEASE.jar

       spring-context-3.2.0.RELEASE.jar

       spring-core-3.2.0.RELEASE.jar

       spring-expression-3.2.0.RELEASE.jar

       依赖的jar包

       com.springsource.org.apache.log4j-1.2.15.jar

       com.springsource.org.apache.commons.logging-1.1.1.jar

       AOP

       spring-aop-3.2.0.RELEASE.jar

       spring-aspects-3.2.0.RELEASE.jar

       依赖的jar包

       com.springsource.org.aopalliance-1.0.0.jar

       com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar

       事务管理的jar包 

       spring-tx-3.2.0.RELEASE.jar

       整合HIbernate的包

       spring-orm-3.2.0.RELEASE.jar

       spring-jdbc-3.2.0.RELEASE.jar

       整合Web项目

       spring-web-3.2.0.RELEASE.jar

       整合Junit单元测试

       spring-test-3.2.0.RELEASE.jar

       连接池:

       com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar

       有关日志记录的jar包

       slf4j-log4j12-1.7.5.jar: slf4j整合log4j的jar包

       commons-logging-1.1.3.jar

       mysql-connector-java-5.1.22-bin.jar:MySQL数据库驱动包

       步骤二:引入相关配置文件

       这里将已经配置好的配置文件贴出来,后面很多的配置连接池和事务管理以及注入方式步骤省略。

       WebContent/WEB-INF/web.xml配置文件的内容:



  struts2_spring3_hibernate3
  
  
    index.jsp
  
  
  
    struts2
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  
  
  
    struts2
    /*
  
  
  
    org.springframework.web.context.ContextLoaderListener
  
  
  
    contextConfigLocation
    classpath:applicationContext.xml
  
  
       struts.xml配置文件

       在src目录下引入struts.xml






	
		
		 
	
    

       src/applicationContext.xml配置文件的内容:


	
	
	
	
	
	
	
		
		
		
		
	
	
	
	
		
		
		
		
			
				org.hibernate.dialect.MySQLDialect
				true
				true
				update
			
		
		
		
			
				com/demo/domain/Product.hbm.xml
			
		
	
	
	
	
		
	
	
	
	
		
	
	
	
	
		 
			
	
	
	
		
	
	
	
	
	

       src/jdbc.properties属性配置文件的内容:

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssh
jdbc.username=root
jdbc.password=root

       src/log4j.properties属性配置文件的内容:

log4j.rootLogger = debug, console, E
#level=INFO,all can be output
#console is set to be a ConsoleAppender
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = [%p] %d{yyyy-MM-dd HH:mm:ss} - %m%n


#file is set to output to a extra file
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.Threshold=error
log4j.appender.E.Encoding=UTF-8
log4j.appender.E.layout.ConversionPattern=[%p] %d{yyyy-MM-dd HH:mm:ss} - %m%n
log4j.appender.E.DatePattern='.'yyyy-MM-dd
log4j.appender.E.File = ${catalina.base}/logs/dd/error.log

       步骤三:创建包结构

       【SSH】:基于Struts2+HIbernate3+Spring3实现员工管理系统之框架整合篇_第3张图片

       步骤四:创建页面(保存商品)

       addProduct.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>




添加商品页面


     

保存商品的页面

商品名称:
商品价格:

       步骤五:编写实体类、对象关系映射文件、Action、Service和DAO

       Product.java

package com.demo.domain;

/**
 * 商品实体类
 * @author Administrator
 * @date 2016年12月24日
 */
public class Product {
	private Integer pid;
	private String pname;
	private Double price;
	
	public Integer getPid() {
		return pid;
	}
	
	public void setPid(Integer pid) {
		this.pid = pid;
	}
	
	public Double getPrice() {
		return price;
	}
	
	public String getPname() {
		return pname;
	}
	
	public void setPname(String pname) {
		this.pname = pname;
	}
	
	public void setPrice(Double price) {
		this.price = price;
	}
	
}

       Product.hbm.xml




	
		
			
		
		
		
	

       ProductAction.java

package com.demo.action;

import com.demo.domain.Product;
import com.demo.service.ProductService;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;

/**
 * 商品管理的action类
 * @author Administrator
 * @date 2016年12月24日
 */
@SuppressWarnings("serial")
public class ProductAction extends ActionSupport implements ModelDriven{
	//模型驱动使用的类
	private Product product = new Product();
	
	@Override
	public Product getModel() {
		return product;
	}
	
	//Struts2和Spring整合过程中按名称注入的业务层的类
	private ProductService productService;
	
	public void setProductService(ProductService productService) {
		this.productService = productService;
	}
	
	/**
	 * action保存商品的执行方法:save()
	 * @return
	 */
	public String save(){
		System.out.println("Action中的save()方法执行了");
		productService.save(product);
		return NONE;
	}
	
}

       ProductService.java

package com.demo.service;

import org.springframework.transaction.annotation.Transactional;

import com.demo.dao.ProductDao;
import com.demo.domain.Product;

/**
 * 商品管理的service类
 * @author Administrator
 * @date 2016年12月24日
 */
@Transactional
public class ProductService {
	//业务层注入DAO的类
	private ProductDao productDao;

	public void setProductDao(ProductDao productDao) {
		this.productDao = productDao;
	}

	/**
	 * 业务层保存商品的方法
	 * @param product
	 */
	public void save(Product product) {
		System.out.println("Service中的save()方法执行了");
		productDao.save(product);
	}
	
}

       ProductDao.java

package com.demo.dao;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.demo.domain.Product;

/**
 * 商品管理的dao类
 * @author Administrator
 * @date 2016年12月24日
 */
public class ProductDao extends HibernateDaoSupport {
	
	/**
	 * DAO中保存商品的方法
	 * @param product
	 */

public void save(Product product) { System.out.println("DAO中的save()方法执行了"); this.getHibernateTemplate().save(product); } }

       步骤六:配置Action、Service和DAO

       Struts2和Spring整合的两种方式:

       1、Action的类由Struts2自身去创建
       Action的配置:struts.xml

      
		 
      
       Service和DAO是如何配置的
       直接在applicationContext.xml中进行配置

        
	
		
	
	
	
	
       2、Action的类交给Spring框架创建
       Action、Service和DAO的配置:applicationContext.xml

        
	
		
	
	
	
	
		
	
	
	
	
		 
			
       Action配置

      
		
		 
	

       步骤七:创建数据库

       create database ssh charset utf8;

       步骤八:Spring整合HIbernate

       在上面的Applicatiom.xml文件已经配置。不管是注入方式还是事务管理,在上面的步骤基本都包括了,就不再

一一赘述。

       运行项目:

       【SSH】:基于Struts2+HIbernate3+Spring3实现员工管理系统之框架整合篇_第4张图片

       控制台输出:

       【SSH】:基于Struts2+HIbernate3+Spring3实现员工管理系统之框架整合篇_第5张图片

       

       数据库的数据:

       【SSH】:基于Struts2+HIbernate3+Spring3实现员工管理系统之框架整合篇_第6张图片

       上述的流程基本通过,下一篇就是实现案例:开发员工管理系统(一个小的示例)

        

你可能感兴趣的:(SSH,SSH框架学习之路)