Struts2,Spring,Hibernate整合例子一个(自己笔记)
开发本项目的具体步骤请看:Struts2,Spring,Hibernate整合步骤
项目目录:
?
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
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
??? <class name="com.zx.test.model.User" table="LB_USER">
??????? <id name="id" type="java.lang.Long">
??????????? <column name="ID"/>
??????????? <generator type="java.lang.String">
??????????? <column name="name" length="20"/>
??????? </property>
??????? <property name="age" type="java.lang.Integer">
??????????? <column name="age" length="2"/>
??????? </property>
??????? <property name="password" type="java.lang.String">
??????????? <column name="password" length="20"/>
??????? </property>
?
??? </class>
</hibernate-mapping>
UserDao.java
package com.zx.test.dao;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.zx.test.model.User;
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 com.zx.test.dao.UserDao;
import com.zx.test.model.User;
public class UserService {
?private UserDao userDao;
?
?public void setUserDao(UserDao userDao) {
? this.userDao = userDao;
?}
?public void saveUser(User user){
? userDao.saveUser(user);
?}
// 在此处添加业务逻辑方法;
}
UserAction.java
?
package com.zx.test.action;
import com.opensymphony.xwork2.ActionSupport;
import com.zx.test.model.User;
import com.zx.test.service.UserService;
public class UserAction extends ActionSupport {
?private User user;
?
?public User getUser() {
? return user;
?}
?public void setUser(User user) {
? this.user = user;
?}
?
?
?private UserService userService ;
?public void setUserService(UserService userService) {
? this.userService = userService;
?}
?
?
?public String userAdd(){
?
? this.userService.saveUser(user);
?
? return SUCCESS;
?}
//添加action方法
}
struts.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
??? "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
??? "http://struts.apache.org/dtds/struts-2.0.dtd">
?
<struts>
? <include file="struts-default.xml"/>
? <package name="user" extends="struts-default" namespace="/user">
??? <action name="userAdd" method="userAdd">
?????? <result name="success">/userShow.jsp</result>
??? </action>
? </package>
</struts>
hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
??????? "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
??????? "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
?<!-- 基本配置 -->
?<property name="dialect">
? org.hibernate.dialect.Oracle9Dialect
?</property>
?<property name="show_sql">false</property>
?<property name="format_sql">true</property>
?<property name="bytecode.use_reflection_optimizer">true</property>
?<property name="max_fetch_depth">2</property>
?<property name="default_batch_fetch_size">8</property>
?<property name="jdbc.batch_size">20</property>
?
?
?<mapping resource="com/zx/test/model/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
?
applicationContext.xml
?
?? <bean id="dataSource" value ="oracle.jdbc.driver.OracleDriver"/>
??? <property name="url" value ="jdbc:oracle:thin:@192.168.0.95:1521:ZXDB2"/>
??? <property name="username" value ="test"/>
??? <property name="password" value ="test"/>
?
?? </bean>
?
?? <bean id="sessionFactory" ref="sessionFactory"></property>
?? </bean>
?
?? <bean id="userService" ref="userDao"></property>
?? </bean>
?
?? <bean id="userAction" scope="prototype">
???? <property name="userService" ref="userService"></property>
?? </bean>
?
web.xml:
<!-- 配置Struts2 -->
? <filter>
? <filter-name>struts2</filter-name>
? <filter-class>
?? org.apache.struts2.dispatcher.FilterDispatcher
? </filter-class>
?</filter>
?<filter-mapping>
? <filter-name>struts2</filter-name>
? <url-pattern>/*</url-pattern>
?</filter-mapping>
?<!--? 配置Spring? -->
?<listener>
? <listener-class>
?? org.springframework.web.context.ContextLoaderListener? </listener-class>
?</listener>
?
?<context-param>
? <param-name>contextConfigLocation</param-name>
? <param-value>classpath*:*.xml</param-value>
?</context-param>
index.jsp:
<form action="<%=request.getContextPath() %>/user/userAdd.action" name="form1" method="post">
?
?????? userName: <input type ="text" name="user.name"><br>
?????? password:<input type="password" name="user.password"><br>
?????? age:<input type="text" name="user.age"><br>
?????? <input type="submit" value="submit"> <input type="reset" value="reset">
??? </form>
userShow.jsp
在第一行添加 struts2 的标签
即:<%@ taglib prefix="s" uri="/struts-tags" %>
<body>
?
?????? userName: <s:property value="user.name"/><br>
?????? password:<s:property value="user.password"/><br>
?????? age:<s:property value="user.age"/>
?
? </body>
?
struts.properties 文件可要可无!(可以自己配置)
开发本项目的具体步骤请看:Struts2,Spring,Hibernate整合步骤
配置文件请注意 所用 DTD的版本,请去自己参照Struts2,Spring,Hibernate整合步骤 完整 配置文件