本文不关心必须的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; }
}
|