以下内容来自慕课网的课程:基于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这两个包;
(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个包,但是有点麻烦.)。
(3)Spring用到的jar包:lib文件夹下所有的.jar包,即不选择javadoc.jar和sources.jar即可;
导好包之后的状态为:
二、引入相应配置文件
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: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"
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:
(2)配置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中加入以下内容:
九、编写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注解
最后测试的结果: