• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
鼎盛工作室
每天提高一点点,每天积累一点点,每天一点进步,有目标有计划的奋斗一生,每天追逐梦想,软件人生,人生软件。
博客园    首页    新随笔    联系   管理    订阅  订阅
Struts+Spring+Hibernate/SSH整合开发详细二

 

 1/****************************************************struts-config.xml****************************************************/
 2
 3<?xml version="1.0" encoding="UTF-8"?>
 4<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
 5
 6<!-- Struts 配置文件中的元素配置时是有一定顺序的 -->
 7<struts-config>
 8<data-sources />
 9<form-beans>
10   <form-bean name="userForm"
11    type="com.wuwei.struts.form.UserForm">
12   </form-bean>
13</form-beans>
14
15<global-exceptions />
16<global-forwards />
17<action-mappings>
18   <action path="/validateUser"
19    type="com.wuwei.struts.action.ValidateUserAction" name="userForm">
20    <forward name="success" path="/success.jsp"></forward>
21    <forward name="fail" path="/fail.jsp"></forward>
22   </action>
23
24</action-mappings>
25
26<!-- 加上controller就不用再配置action的type属性了/或者说type属性不用改为
27   type="org.springframework.web.struts.DelegatingActionProxy" -->
28<controller
29   processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
30</controller>
31
32<message-resources
33   parameter="com.wuwei.struts.ApplicationResources" />
34
35<plug-in
36   className="org.springframework.web.struts.ContextLoaderPlugIn">
37   <set-property property="contextConfigLocation"
38    value="/WEB-INF/classes/applicationContext.xml" />
39</plug-in>
40
41<!-- 如下配置的话,就可以不在Action中配置type属性了 -->
42<!--<controller>
43   <set-property property="processorClass"
44   value="org.springframework.web.struts.DelegatingRequestProcessor" />
45   </controller>-->
46
47<!--配置一个插件去集成spring -->
48<!--<plug-in
49   className="org.springframework.web.struts.ContextLoaderPlugIn">
50   <set-property property="contextConfigLocation"
51   value="/WEB-INF/applicationContext.xml" />
52   </plug-in>-->
53</struts-config>
54
55/*********************************************….hbm.xml************************************************/
56
57<?xml version="1.0" encoding="utf-8"?>
58<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
59"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
60<!-- 
61    Mapping file autogenerated by MyEclipse Persistence Tools
62-->
63<hibernate-mapping>
64    <!-- <class name="com.wuwei.struts.bean.User" table="user" schema="dbo" catalog="test">-->
65    <class name="com.wuwei.struts.bean.User" table="user" lazy="false">
66        <id name="ID" type="java.lang.Integer">
67            <column name="id" />
68            <generator class="increment" />
69        </id>
70        <property name="username" type="java.lang.String">
71            <column name="username" length="8" />
72        </property>
73        <property name="pwd" type="java.lang.String">
74            <column name="pwd" length="8" />
75        </property>
76    </class>
77</hibernate-mapping>
78
79


 

 1/*******************************************************applicationConfig.xml**********************************************************/
 2
 3<?xml version="1.0" encoding="UTF-8"?>
 4<beans xmlns="http://www.springframework.org/schema/beans"
 5xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 6xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
 7
 8<!-- 数据源部分 -->
 9<bean id="dataSource"
10   class="org.apache.commons.dbcp.BasicDataSource">
11   <property name="driverClassName"
12    value="net.sourceforge.jtds.jdbc.Driver">
13   </property>
14   <property name="url"
15    value="jdbc:jtds:sqlserver://localhost:1433/test">
16   </property>
17   <property name="username" value="sa"></property>
18   <property name="password" value="admin"></property>
19</bean>
20
21<!-- 将Hibernate交由Spring管理(Hibernate相关配置信息) ,创建SessionFactory-->
22<bean id="sessionFactory"
23   class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
24   <property name="dataSource">
25    <ref bean="dataSource" />
26   </property>
27   <property name="hibernateProperties">
28    <props>
29     <prop key="hibernate.dialect">
30      org.hibernate.dialect.SQLServerDialect
31     </prop>
32     <prop key="hibernate.show_sql">true</prop>
33    </props>
34   </property>
35   <property name="mappingResources">
36    <list>
37     <value>com/wuwei/struts/dao/User.hbm.xml</value>
38    </list>
39   </property>
40</bean>
41
42<!-- 通过HibernateDaoSupport来操作数据库,需要植入sessionFactory 
43   UserDao继承自HibernateDaoSupport
44-->
45<bean id="userDao" class="com.wuwei.struts.dao.UserDAO">
46   <property name="sessionFactory" ref="sessionFactory" />
47</bean>
48
49<!-- 
50   如果想在某个Dao类中直接使用HibernateTemplate来操作数据库,则需要按如下配置 
51   上述的HibernateDaoSupport其实也是利用HibernateTemplate来操作数据库的,只是做
52   了一些封装。刚开始还一直在想,哪种实现方式好了,这样看来,还是看个人习惯吧。
53-->
54<!-- 
55   <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
56    <property name="sessionFactory" ref="sessionFactory" />
57   </bean>
58  
59   <bean id="userDao" class="com.wuwei.struts.dao.UserDAO">
60    <property name="hibernateTemplate" ref="hibernateTemplate" />
61   </bean>
62-->
63
64<!-- Struts -->
65<bean name="/validateUser"
66   class="com.wuwei.struts.action.ValidateUserAction">
67   <property name="userDAO" ref="userDao" />
68
69</bean>
70</beans>
71
72


 

  1/** *//****************************************************UserDAO.java****************************************************/
  2
  3
  4package com.wuwei.struts.dao;
  5
  6import java.util.List;
  7
  8import org.apache.commons.logging.Log;
  9import org.apache.commons.logging.LogFactory;
 10import org.hibernate.LockMode;
 11import org.springframework.context.ApplicationContext;
 12import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
 13
 14import com.wuwei.struts.bean.User;
 15
 16/** *//**
 17* Data access object (DAO) for domain model class User.
 18* 
 19* @see com.wuwei.struts.dao.User
 20* @author MyEclipse Persistence Tools
 21*/

 22public class UserDAO extends HibernateDaoSupport{
 23
 24private static final Log log    = LogFactory.getLog(UserDAO.class);
 25
 26// property constants
 27public static final String USERNAME = "username";
 28
 29public static final String PWD    = "pwd";
 30
 31protected void initDao()
 32{
 33// do nothing
 34}

 35
 36public void save(User transientInstance)
 37{
 38   log.debug("saving User instance");
 39   try
 40   {
 41    getHibernateTemplate().save(transientInstance);
 42    log.debug("save successful");
 43   }

 44   catch (RuntimeException re)
 45   {
 46    log.error("save failed", re);
 47    throw re;
 48   }

 49}

 50
 51public void delete(User persistentInstance)
 52{
 53   log.debug("deleting User instance");
 54   try
 55   {
 56    getHibernateTemplate().delete(persistentInstance);
 57    log.debug("delete successful");
 58   }

 59   catch (RuntimeException re)
 60   {
 61    log.error("delete failed", re);
 62    throw re;
 63   }

 64}

 65
 66public User findById(java.lang.Integer id)
 67{
 68   log.debug("getting User instance with id: " + id);
 69   try
 70   {
 71    User instance = (User) getHibernateTemplate().get("com.wuwei.struts.dao.User", id);
 72    return instance;
 73   }

 74   catch (RuntimeException re)
 75   {
 76    log.error("get failed", re);
 77    throw re;
 78   }

 79}

 80
 81public List findByExample(User instance)
 82{
 83   log.debug("finding User instance by example");
 84   try
 85   {
 86    List results = getHibernateTemplate().findByExample(instance);
 87    log.debug("find by example successful, result size: " + results.size());
 88    return results;
 89   }

 90   catch (RuntimeException re)
 91   {
 92    log.error("find by example failed", re);
 93    throw re;
 94   }

 95}

 96
 97public List findByProperty(String propertyName, Object value)
 98{
 99   log.debug("finding User instance with property: " + propertyName + ", value: " + value);
100   try
101   {
102    String queryString = "from User as model where model." + propertyName + "= ?";
103    return getHibernateTemplate().find(queryString, value);
104   }

105   catch (RuntimeException re)
106   {
107    log.error("find by property name failed", re);
108    throw re;
109   }

110}

111
112public List findByUsername(Object username)
113{
114   return findByProperty(USERNAME, username);
115}

116
117public List findByPwd(Object pwd)
118{
119   return findByProperty(PWD, pwd);
120}

121
122public List findAll()
123{
124   log.debug("finding all User instances");
125   try
126   {
127    String queryString = "from User";
128    return getHibernateTemplate().find(queryString);
129   }

130   catch (RuntimeException re)
131   {
132    log.error("find all failed", re);
133    throw re;
134   }

135}

136
137public User merge(User detachedInstance)
138{
139   log.debug("merging User instance");
140   try
141   {
142    User result = (User) getHibernateTemplate().merge(detachedInstance);
143    log.debug("merge successful");
144    return result;
145   }

146   catch (RuntimeException re)
147   {
148    log.error("merge failed", re);
149    throw re;
150   }

151}

152
153public void attachDirty(User instance)
154{
155   log.debug("attaching dirty User instance");
156   try
157   {
158    getHibernateTemplate().saveOrUpdate(instance);
159    log.debug("attach successful");
160   }

161   catch (RuntimeException re)
162   {
163    log.error("attach failed", re);
164    throw re;
165   }

166}

167
168public void attachClean(User instance)
169{
170   log.debug("attaching clean User instance");
171   try
172   {
173    getHibernateTemplate().lock(instance, LockMode.NONE);
174    log.debug("attach successful");
175   }

176   catch (RuntimeException re)
177   {
178    log.error("attach failed", re);
179    throw re;
180   }

181}

182
183public static UserDAO getFromApplicationContext(ApplicationContext ctx)
184{
185   return (UserDAO) ctx.getBean("UserDAO");
186}

187}

188
189

 


 1/** *//****************************************************ValidateUserAction.java****************************************************/
 2
 3
 4package com.wuwei.struts.action;
 5
 6import java.util.List;
 7
 8import javax.servlet.http.HttpServletRequest;
 9import javax.servlet.http.HttpServletResponse;
10
11import org.apache.struts.action.Action;
12import org.apache.struts.action.ActionForm;
13import org.apache.struts.action.ActionForward;
14import org.apache.struts.action.ActionMapping;
15
16import com.wuwei.struts.bean.User;
17import com.wuwei.struts.dao.UserDAO;
18import com.wuwei.struts.form.UserForm;
19
20public class ValidateUserAction extends Action{
21
22UserDAO userDAO = null;
23
24public void setUserDAO(UserDAO userDAO)
25{
26   this.userDAO = userDAO;
27}

28
29public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
30    HttpServletResponse response)
31{
32   UserForm userForm = (UserForm) form;
33   List list = userDAO.findByUsername(userForm.getUsername());
34   if (0 < list.size())
35   {
36    User user = (User) list.get(0);
37    if (user.getPwd().equals(userForm.getPwd()))
38     return mapping.findForward("success");
39    else
40     return mapping.findForward("fail");
41   }

42   else
43    return mapping.findForward("fail");
44   // System.out.println("I'm in a Action");
45   // return null;
46}

47}

48

posted on 2009-08-19 08:53  鼎盛工作室  阅读(491)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3