Chinaunix首页 | 论坛 | 博客
  • 博客访问: 30465550
  • 博文数量: 708
  • 博客积分: 12163
  • 博客等级: 上将
  • 技术积分: 8240
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-04 20:59
文章分类

全部博文(708)

分类: Java

2008-03-31 15:18:42

 

本文不关心必须的JAR包,这个东东在网上能够找到很多,本文只关心如何配置,才能够让STRUTS SPRING HIBERNATE和MYSQL相关连。
开发环境:wsad5.1
Spring-Version: 1.1.4
Struts Framework 1.1
Hibernate-Version: 2.1.7
Blog.Ad0.Cn

-------- -------------------------
<web.xml>
-------- -------------------------


Hibernate 的原理与配置快速入门
Struts+Spring+Hibernate组装web应
创建struts1.2 + Hibernate3.0 Web
我找到一个最简单的hibernate入门
Hibernate 实例学习笔记
在MyEclipse快速搭建Hibernate应用
整合 JSF+Spring+Hibernate的小例
Eclipse3.0下Struts +spring+ hi
最简单的Hibernate入门简介
spring+hibernate+jbpm整合成功
程序代码

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" " app_2_3.dtd"> <web-app id="WebApp"> <display- name>MVC_BPEL_MODELWeb</display-name> <context- param> <param- name>contextConfigLocation</param-name> <param- value>/WEB- INF/Hibernate_Context.xml</param-value> </context- param> <servlet> <servlet- name>SpringContextServlet</servlet-name> <servlet- class>org.springframework.web.context.ContextLoaderServlet</servlet-class> <load-on- startup>1</load-on-startup> </servlet> <servlet> <servlet- name>action</servlet-name> <servlet- class>org.apache.struts.action.ActionServlet</servlet-class> <init- param> <param- name>config</param-name> <param- value>WEB-INF/struts -config.xml</param- value> </init- param> <init- param> <param- name>debug</param-name> <param- value>2</param-value> </init- param> <init- param> <param- name>detail</param-name> <param- value>2</param-value> </init- param> <init- param> <param- name>validate</param-name> <param- value>true</param -value> </init- param> <load-on- startup>2</load-on-startup> </servlet> <servlet- mapping> <servlet- name>action</servlet-name> <url- pattern>*.do</url- pattern> </servlet- mapping> <welcome-file- list> <welcome- file>index.html</welcome-file> <welcome- file>index.htm</welcome-file> <welcome- file>index.jsp</welcome-file> <welcome- file>default.html</welcome-file> <welcome- file>default.htm</welcome-file> <welcome- file>default.jsp</welcome-file> </welcome-file- list> <taglib> <taglib- uri>/WEB-INF/struts- bean.tld</taglib- uri> <taglib- location>/WEB- INF/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib- uri>/WEB-INF/struts- html.tld</taglib- uri> <taglib- location>/WEB- INF/struts-html.tld</taglib-location> </taglib> <taglib> <taglib- uri>/WEB-INF/struts- logic.tld</taglib- uri> <taglib- location>/WEB- INF/struts-logic.tld</taglib-location> </taglib> <taglib> <taglib- uri>/WEB-INF/struts- nested.tld</taglib- uri> <taglib- location>/WEB- INF/struts-nested.tld</taglib-location> </taglib> <taglib> <taglib- uri>/WEB-INF/struts- template.tld</taglib -uri> <taglib- location>/WEB- INF/struts-template.tld</taglib-location> </taglib> <taglib> <taglib- uri>/WEB-INF/struts- tiles.tld</taglib- uri> <taglib- location>/WEB- INF/struts-tiles.tld</taglib-location> </taglib> </web- app>


-----------------------------------
<action-servlet.xml>
------------------------------------------------------------ ----------

 程序代码

<?xml
version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"">

<beans>
<bean name="/User" class="com.yaya.action.UserAction" singleton="false">
<property
name="userManager">
<ref bean="userManager" />
</property>
</bean>


</beans>



-------------------------------------------------------------------
<hibernate_context.xml>
--------------------------------------------------------- -----------

 程序代码

<?xml
version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans
PUBLIC "-//SPRING//DTD BEAN//EN" "
beans.dtd"
>

<beans>
<!-- <bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property
name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value><
/property>
<property name="prefix"><value>/WEB-INF/jsp/</value></property>
<property name="suffix"><value>.jsp</value></property>
</bean> -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy
-method="close">

<property
name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>

<property
name="url">
<value>jdbc:mysql://localhost/pdm


</property>

<property
name="username">
<value>root</value>
</property>

<property
name="password">
<value></value>
</property>
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">

<property
name="dataSource">
<ref local="dataSource" />
</property>

<property
name="mappingResources">
<list>
<value>hbm_tb/Tsysuser.hbm.xml</value>
</list>
</property>

<property
name="hibernateProperties">
<props>
<prop key="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">

<property
name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>


<!-- Spring的数据访
问异常转换器(Data Access Exception Translator)定义 --
>
<bean id="jdbcExceptionTranslator" class="org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator">
<property
name="dataSource">
<ref bean="dataSource" />
</property>
</bean>

<bean id="userDao" class="com.yaya.service.dao.hibernate.UserHibernateDao">
<property
name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>

<bean id="userManagerTarget" class="com.yaya.service.spring.UserManagerImpl">
<property
name="userDao">
<ref local="userDao" />
</property>
</bean>


<bean id="userManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property
name="transactionManager">
<ref bean="transactionManager" />
</property>

<property
name="target">
<ref local="userManagerTarget" />
</property>

<property
name="proxyTargetClass">
<value>true</value>
</property>
<property
name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="find*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>

</beans>



-------------------------------------------------------------------
<struts-config.xml> Ad0.Cn
------------------------------------------------ -------------------

 程序代码

<?xml
version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration
1.1//EN"

"">

<struts-
config>

<!-- 数据源
-->
<data-
sources></data-
sources>

<!-- 表单 Bean
-->
<form-
beans>
<form-bean
name="UserActionForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property
name="user" type="com.yaya.hb.Tsysuser" />
</form-
bean>
</form-
beans>

<!-- 全局异常
-->
<global-
exceptions></global-exceptions>

<!-- 全局转发
-->
<global-
forwards></global
-forwards>

<!-- 操作映射
-->
<action-
mappings>
<action
path="/User" type="org.springframework.web.struts.DelegatingActionProxy"
name="UserActionForm"
scope="request"
parameter="method"
validate="false">
<forward
name="list" path="/userlist.jsp" />
<forward
name="edit" path="/userform.jsp" />
</action>

</action-
mappings>

<!-- 消息资源
-->
<message-resources
parameter="mvc_bpel_modelweb.resources.ApplicationResources"
/>
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property
property="contextConfigLocation" value="/WEB-INF/action-servlet.xml"
/>
</plug-
in>
<plug-in
className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
property="pathnames" value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml"/>
</plug-
in>

</struts-
config>



------------------------------------------------------------------
UserHibernateDao.java Ad0.Cn
------------------------------------------------ ------------------

 程序代码
/*
* 创建日期 2005-4-7
*
* 更改所生成文 件模板为
* 窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/

package com.yaya.service.dao.hibernate; import java.util.List; import org.springframework.orm.ObjectRetrievalFailureException; import org.springframework.orm.hibernate.support.HibernateDaoSupport; import net.sf.hibernate.HibernateException; import com.yaya.hb.Tsysuser; import com.yaya.service.dao.IUserDao; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /**//** * @author Administrator * * 更改所生成类型注释的模板为 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释 */ public class UserHibernateDao extends HibernateDaoSupport implements IUserDao ...{ private Log log = LogFactory.getLog (UserHibernateDao.class); /**//* (非 Javadoc) * @see com.jandar.dao.IUserDAO#getUsers() */ public List getUsers() ...{ return getHibernateTemplate().find("from Tsysuser"); } /**//* (非 Javadoc) * @see com.jandar.dao.IUserDAO#getUser(java.lang.Long) */ public Tsysuser getUser(String username) ...{ // TODO 自动生成方法存根 if (this.getHibernateTemplate() == null) ...{ System.out.println ("error at there"); return null; } Tsysuser user = (Tsysuser) getHibernateTemplate().get(Tsysuser.class,username); //Tsysuser user = (Tsysuser) getHibernateTemplate().find("from Tsysuser users where users.username = 'admin'",username); if (user == null) ...{ throw new ObjectRetrievalFailureException (Tsysuser.class, username); } return user; //String msg = getHibernateTemplate().get(Tsysuser.class,username).toString(); //Tsysuser user = (Tsysuser) getHibernateTemplate().find("from Tsysuser where username = ?",username); //System.out.println(user.getUserdesc()); //System.out.println(user.getHeadship()); //return user; } /**//* (非 Javadoc) * @see com.jandar.dao.IUserDAO#saveUser(com.jandar.model.User) */ public void saveUser(Tsysuser user) ...{ log.debug("xxxxxxx"); System.out.println ("yyyy"); getHibernateTemplate().saveOrUpdate(user); if (log.isDebugEnabled()) ...{ log.debug("username set to " + user.getUsername()); } } /**//* (非 Javadoc) * @see com.jandar.dao.IUserDAO#removeUser(java.lang.Long) */ public void removeUser(String username) ...{ Object user = getHibernateTemplate().load(Tsysuser.class, username); getHibernateTemplate().delete(user); if (log.isDebugEnabled()) ...{ log.debug("del user " + username); } } }



------------ -------------------------------------------------------
useraction.java
----------- ---------------------------------------------------------
程序代码

package com.yaya.action;

import java.util.Date;

import org.apache.struts.actions.DispatchAction;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.util.MessageResources;

import com.opensymphony.user.User;
import com.yaya.axis.SpringBeanProvider;
import com.yaya.hb.Tsysuser;
import com.yaya.service.spring.UserManagerImpl;
/**//**
*
@author Administrator
*
*
更改所生成类型注释的模板为
*
窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/

public class UserAction extends
DispatchAction ...{

private static Log log = LogFactory.getLog
(UserAction.class);
private
UserManagerImpl mgr =
null;
public
void setUserManager
(UserManagerImpl userManager) ...{
this.mgr = userManager;
}

public ActionForward delete(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception ...{
if
(log.isDebugEnabled()) ...{
log.debug("entering
'delete' method…"
);
}
mgr.removeUser(request.getParameter("user.username"));
ActionMessages messages = new ActionMessages();
messages.add(
ActionMessages.GLOBAL_MESSAGE,
new ActionMessage
("user.deleted"));
saveMessages(request, messages);
return list(mapping, form, request, response);
}

public ActionForward edit(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception ...{
if
(log.isDebugEnabled()) ...{
log.debug("entering
'edit' method…"
);
}

DynaActionForm UserActionForm = (DynaActionForm) form;
String username =
request.getParameter("username");

// null userId


indicates an add
if (username !=
null) ...{
try
...{
Tsysuser user = mgr.getUser(username);
if (user
== null) ...{
ActionMessages errors = new ActionMessages();
errors.add(
ActionMessages.GLOBAL_MESSAGE,
new ActionMessage
("user.missing"));
saveErrors(request, (ActionErrors) errors);
return
mapping.findForward("list");
}
UserActionForm.set
("user",user);
//request.setAttribute("user",user);


}
catch(Exception e)
...{
e.printStackTrace();
}

}
return
mapping.findForward("edit");
}

public ActionForward list(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception ...{
if
(log.isDebugEnabled()) ...{
log.debug("entering
'list' method…"
);
}
request.setAttribute("users", mgr.getUsers());
return
mapping.findForward("list");
}

public ActionForward save(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception ...{
if
(log.isDebugEnabled()) ...{
log.debug("entering
'save' method…"
);
}

if
(isCancelled(request)) ...{
return list(mapping, form, request, response);
}

// run validation


rules on this form
ActionMessages
errors = form.validate(mapping, request);

if
(!errors.isEmpty())
...{
saveErrors(request, (ActionErrors) errors);

return
mapping.findForward("edit");
}
DynaActionForm UserActionForm = (DynaActionForm) form;
Tsysuser user =
(Tsysuser) UserActionForm.get("user");

mgr.saveUser(user);

ActionMessages messages = new ActionMessages();
messages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage
("user.saved",
user.getUsername()));
//saveMessages


((HttpServletRequest) request.getSession(), messages);

return mapping.findForward("list");
}

public ActionForward unspecified(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception ...{
return list(mapping, form, request, response);
}

}



-------------------------------------------------------------------
UserActionForm.java
-------------------------------------------------------------------

 程序代码

package
com.yaya.actionform;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

/**//**
*
@author Administrator
*
*
更改所生成类型注释的模板为
*
窗口 > 首选项 > Java > 代码生成 > 代码和注释
*/

public class UserActionForm extends
ActionForm ...{
/**//** identifier field */
private String username;

/**//** identifier field */
private String userdesc;

/**//** identifier field */
private String passwords;

/**//** identifier field */
private String deptno;

/**//** identifier field */
private String headship;

/**//** identifier field */
private String sex;

/**//** identifier field */
private String tel;

/**//** identifier field */
private String email;

/**//** identifier field */
private String url;

/**//** identifier field */
private String pcall;

/**//** identifier field */

/**//** identifier field */
private String userphoto;

/**//** identifier field */
private Integer facerefutime;

/**//** identifier field */
private String facelanguage;

/**//** identifier field */
private String lastmodif;

/**//** identifier field */
private Date lastmdate;

/**//** identifier field */
private String creadtor;

/**//** identifier field */
private Date creatdate;

public String
getUsername() ...{
return this.username;
}

public
void setUsername(String
username) ...{
this.username
=
username;
}



public String
getPasswords() ...{
return this.passwords;
}

public
void setPasswords(String
passwords) ...{
this.passwords
=
passwords;
}

public String
getDeptno() ...{
return this.deptno;
}

public
void setDeptno(String
deptno) ...{
this.deptno
=
deptno;
}

public String
getHeadship() ...{
return this.headship;
}

public
void setHeadship(String
headship) ...{
this.headship
=
headship;
}

public String
getSex() ...{
return this.sex;
}

public
void setSex(String sex)
...{
this.sex = sex;
}

public String
getTel() ...{
return this.tel;
}

public
void setTel(String tel)
...{
this.tel = tel;
}

public String
getEmail() ...{
return this.email;
}

public
void setEmail(String
email) ...{
this.email
=
email;
}

public String
getUrl() ...{
return this.url;
}

public
void setUrl(String url)
...{
this.url = url;
}

public String
getPcall() ...{
return this.pcall;
}

public
void setPcall(String
pcall) ...{
this.pcall
=
pcall;
}


public String
getUserphoto() ...{
return this.userphoto;
}

public
void setUserphoto(String
userphoto) ...{
this.userphoto
=
userphoto;
}

public Integer
getFacerefutime() ...{
return this.facerefutime;
}

public
void setFacerefutime
(Integer facerefutime) ...{
this.facerefutime
=
facerefutime;
}

public String
getFacelanguage() ...{
return this.facelanguage;
}

public
void setFacelanguage
(String facelanguage) ...{
this.facelanguage
=
facelanguage;
}

public String
getLastmodif() ...{
return this.lastmodif;
}

public
void setLastmodif(String
lastmodif) ...{
this.lastmodif
=
lastmodif;
}

public Date
getLastmdate() ...{
return this.lastmdate;
}

public
void setLastmdate(Date
lastmdate) ...{
this.lastmdate
=
lastmdate;
}

public String
getCreadtor() ...{
return this.creadtor;
}

public
void setCreadtor(String
creadtor) ...{
this.creadtor
=
creadtor;
}

public Date
getCreatdate() ...{
return this.creatdate;
}

public
void setCreatdate(Date
creatdate) ...{
this.creatdate
=
creatdate;
}

/**//**
*
@return
*/

public String
getUserdesc() ...{
return userdesc;
}

/**//**
*
@param string
*/

public
void setUserdesc(String
string) ...{
userdesc =
string;
}


}

 

阅读(1899) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~