Struts2,Spring,Hibernate整合例子一个
Struts2,Spring,Hibernate整合例子一个
1.建立web项目
2.在web.xml 配置struts2,和spring ,
org.apache.struts2.dispatcher.FilterDispatcher(struts的过滤器)
org.springframework.web.context.ContextLoaderListener(spring监听器)
3.在src根目录下创建struts.xml文件
4.在src根目录创建hibernate.cfg.xml文件
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"https://www.360docs.net/doc/b13123460.html,/hibernate-configuration-3.0.dtd">
org.hibernate.dialect.Oracle9Dialect
系统给的文件只需要拷贝,都是一些数据库库的基本配置
5.在src根目录拷贝struts.properties文件
struts.objectFactory = spring 该项是告诉系统用spring来控制hibernate和Action
struts.action.extension=action 告诉系统访问时以什么结尾。可以改为: do 例如:login.do ,此处为:login.action
6.在src根目录下创建applicationContext.xml
配置数据源
创建sessionFactory 工厂
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> type="org.springframework.core.io.Resource">classpath:hibernate.cfg.xml
考来用
7.创建实体类
就是写一个bean 含有get/set 方法
8.在实体类所在的目录下,写一个类名.hbm.xml文件,在配置文件中添加属性
SEQ_LB_USER指定主键生成方式,必须在pl/sql 创建主键生成方式
所有属性的name 必须与bean中的set后的名称一样
9.创建一个Dao 实现操作方法
10 创建service 调用Dao中的方法
11.创建Action 将service的得到的user 加到Action中
12.在applicationContext.xml 中配置
将userDao注入到sessionFactory中
将userService 注入到UserDao中
将userAction 注入到userService中
13.在struts.xml中配置Action
此处配置了访问时的路径:/user/userAdd
14.将8中的配置文件加入到4 中
引用配置文件
15.写jsp页面表单提交到Action
9.10.11:是Action 调用Service ,Service调用Dao 也是分层的体现
Web.xml 是web工程的配置文件
ApplicationContext 是spring的配置文件
Hibernate.hbm.xml 是hibernate的配置文件
建表是注意创建主键时name 为表明
项目目录:
User.java
package com.zx.test.model;
public class User {
private Long id;
private String name;
private Integer age;
private String password;
// get/set方法
}
User.hbm.xml
SEQ_LB_USER
UserDao.java
package com.zx.test.dao;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import https://www.360docs.net/doc/b13123460.html,er;
public class UserDao extends HibernateDaoSupport {
/**
* 保存user
* @param user
*/
public void saveUser(User user){
// spring自带方法保存
this.getHibernateTemplate().save(user);
}
//update, delete ,findAll 方法同上,省略!
}
UserService.java
package com.zx.test.service;
import https://www.360docs.net/doc/b13123460.html,erDao;
import https://www.360docs.net/doc/b13123460.html,er;
public class UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) { https://www.360docs.net/doc/b13123460.html,erDao = userDao;
}
public void saveUser(User user){
userDao.saveUser(user);
}
// 在此处添加业务逻辑方法;
}
UserAction.java
package com.zx.test.action;
import com.opensymphony.xwork2.ActionSupport; import https://www.360docs.net/doc/b13123460.html,er;
import https://www.360docs.net/doc/b13123460.html,erService;
public class UserAction extends ActionSupport { private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
https://www.360docs.net/doc/b13123460.html,er = user;
}
private UserService userService ;
public void setUserService(UserService userService) {
https://www.360docs.net/doc/b13123460.html,erService = userService;
}
public String userAdd(){
https://www.360docs.net/doc/b13123460.html,erService.saveUser(user);
return SUCCESS;
}
//添加action方法
}
struts.xml:
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"https://www.360docs.net/doc/b13123460.html,/dtds/struts-2.0.dtd">
hibernate.cfg.xml
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"https://www.360docs.net/doc/b13123460.html,/hibernate-configuration-3.0.dtd">
org.hibernate.dialect.Oracle9Dialect
applicationContext.xml
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> type="org.springframework.core.io.Resource">classpath:hibernate.cfg.xml
web.xml:
org.apache.struts2.dispatcher.FilterDispatcher
org.springframework.web.context.ContextLoaderListener
index.jsp:
userShow.jsp
在第一行添加struts2 的标签
即:<%@ taglib prefix="s" uri="/struts-tags" %>
userName:
password:
age:
struts.properties 文件可要可无!(可以自己配置)