SSH框架整合的一个小案例

以下内容来自慕课网的课程:基于SSH实现员工管理系统之框架整合篇(不同的是我用的jar包都是最新版本)

一、创建项目引入jar包

1、下载包(我选用的是Hibernate5.2.10+Struts2.3.33+Spring4.3.5)

Hibernate下载地址: http://hibernate.org/orm/

Struts2下载地址: http://struts.apache.org/download     

Spring下载地址: http://repo.spring.io/release/org/springframework/spring/

2、导入项目用到的jar包

(1)Hibernate用到的包:分别是lib->required中的10个包以及lib->optional->c3p0中的c3p0-0.9.5.2.jar和

mchange-commons-java-0.2.11.jar这两个包;

SSH框架整合的一个小案例_第1张图片

(2)Struts2用到的jar包:解压apps->struts2-blank.war,然后拷贝struts2-blank->WEB-INF->lib下的13个包,

然后在和apps同目录下的lib文件夹下找到commons-logging-1.1.3.jar和struts2-spring-plugin-2.3.33.jar两个包(可以直接在lib文件夹下

找到这15个包,但是有点麻烦.)。

SSH框架整合的一个小案例_第2张图片

(3)Spring用到的jar包:lib文件夹下所有的.jar包,即不选择javadoc.jar和sources.jar即可;

SSH框架整合的一个小案例_第3张图片

导好包之后的状态为:

SSH框架整合的一个小案例_第4张图片

SSH框架整合的一个小案例_第5张图片

二、引入相应配置文件

1、Struts2中配置文件 struts.xml:可以将我们刚刚解压的struts2-blank中WEB-INF\src\java下的struts.xml文件拷贝,

删除没用的标签即可;

2、日记文件 log4j2.xml:同样可以将struts2-blank中WEB-INF\src\java下的log4j2.xml文件拷贝,然后修改成自己所需的版本;

3、jdbc.properties文件:输入以下内容,修改自己的数据库名,用户名和密码即可;

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

4、Spring中配置文件:

(1)applicationContext.xml文件:创建一个新的xml文件,输入以下内容即可;


    xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:aop="http://www.springframework.org/schema/aop"   
    xmlns:tx="http://www.springframework.org/schema/tx"  
    xmlns:context="http://www.springframework.org/schema/context"
   
xsi:schemaLocation="http://www.springframework.org/schema/beans 
   
http://www.springframework.org/schema/beans/spring-beans.xsd  
  http://www.springframework.org/schema/context
   
http://www.springframework.org/schema/context/spring-context.xsd
  http://www.springframework.org/schema/aop  
    http://www.springframework.org/schema/aop/spring-aop.xsd 
    http://www.springframework.org/schema/tx   
    http://www.springframework.org/schema/tx/spring-tx.xsd"> 

/beans>

5、最后在web.xml文件中配置Struts2和Spring:在web.xml文件中输入一下内容即可(Ctrl+Shift+T快捷查找)。

(1)配置Spring:



org.springframework.web.context.ContextLoaderListener



contextConfigLocation
classpath:applicationContext.xml
 

(2)配置Struts2:



struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter


struts2
/*

三、创建包结构并创建实体

1、创建以下包结构(可以自定义前面的模块名):

(1)cn.gdedu.ssh.action

(2)cn.gdedu.ssh.dao

(3)cn.gdedu.ssh.domain

(4)cn.gdedu.ssh.service

2、在domain包下面创建product实体,封装了pid,pname和price三个变量的javaBean类:

private Integer pid;
private String pname;
private Double price;

下面的getter和setter方法省略...

四、创建页面addProduct.jsp

保存商品的页面


 
 
 
 
 
   
 
 
 
   
 
 
 
 
商品名称
商品价格
 
 

五、编写Action、DAO、Service层代码

(1)在dao包下面创建ProductDao.java文件;

(2)在service包下面创建ProductService.java文件:

public class ProductService {
//业务层注入Dao的类
private ProductDao productDao;
public void setProductDao(ProductDao productDao) {
this.productDao = productDao;
}

}

(3)在action包下面创建ProductAction.java:继承ActionSupport类,以及实现模型驱动,即实现ModelDriven接口,并加上泛型;

public class ProductAction extends ActionSupport implements ModelDriven{
private static final long serialVersionUID = 1L;
/**
* 模型驱动使用的类
*/
private Product product=new Product();
@Override
public Product getModel() {
return this.product;
}

/**
* Struts和Spring整合过程中按名称自动注入的业务层类
*/
private ProductService productService;
public void setProductService(ProductService productService) {
this.productService = productService;
}

        }

六、配置Action、DAO、Service类

(1)在applicationContext.xml中加入action,dao和service的bean结构:















(2)在struts.xml中配置action类:


   
   
   
   
        
   

(3)配置完成后,在action类中创建save方法,然后分别创建service和dao层的save方法给action调用,然后就可以启动服务器进行测试(点击添加按钮,Console控制台将出现三行在action,service和dao中需要输出的内容)

//保存商品的执行的方法:save
public String save(){
System.out.println("Action中的save方法执行了...");
productService.save(product);
return NONE;
}
  

七、创建数据库并配置实体类文件;

(1)进入dos界面:输入用户名密码登录mysql数据库,并创建ssh数据库,过程略;

(2)在domain包下创建product.hbm.xml实体类映射文件:


hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" 
>








八、配置c3p0连接池和Hibernate的一些属性

(1)在applicationContext.xml中加入以下内容:























org.hibernate.dialect.MySQL5Dialect
true
true
update







cn/gdedu/ssh/domain/Product.hbm.xml



九、编写DAO中的代码

(1)productDao类继承HibernateDaoSupport类;

(2)在applicationContext.xml中配置Dao时加入:





(3)在productDao中调用模板完成:

//DAO中的保存商品的方法
public void save(Product product) {
//调用sessionFactory中的getHibernateTemplate的方法.
this.getHibernateTemplate().save(product);
System.out.println("DAO中的save方法执行了...");
}
  

十、添加事务管理

(1)在applicationContext.xml中加入以下内容:







      (2)在ProductService类上加上@Transactional注解


最后测试的结果:

SSH框架整合的一个小案例_第6张图片

SSH框架整合的一个小案例_第7张图片

SSH框架整合的一个小案例_第8张图片

你可能感兴趣的:(javaweb开发)