史上最简单的struts+spring+hibernate配置实例本文不关心必须的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> -------- ------------------------- 程序代码<?xmlversion="1.0" encoding="UTF-8"?><!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"><web-appid="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> ------------------------------------------------------------ ---------- 程序代码<?xmlversion="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd"><beans><bean name="/User" class="com.yaya.action.UserAction" singleton="false"><propertyname="userManager"><ref bean="userManager" /></property></bean></beans> ------------------------------------------------------------------- <hibernate_context.xml> --------------------------------------------------------- ----------- 程序代码<?xmlversion="1.0" encoding="UTF-8"?><!DOCTYPE beansPUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"><beans><!-- <bean id="viewResolver"class="org.springframework.web.servlet.view.InternalResourceViewResolver"><propertyname="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"><propertyname="driverClassName"><value>com.mysql.jdbc.Driver</value></property><propertyname="url"><value>jdbc:mysql://localhost/pdm</value></property><propertyname="username"><value>root</value></property><propertyname="password"><value></value></property></bean><bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean"><propertyname="dataSource"><ref local="dataSource" /></property><propertyname="mappingResources"><list><value>hbm_tb/Tsysuser.hbm.xml</value></list></property><propertyname="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"><propertyname="sessionFactory"><ref local="sessionFactory" /></property></bean><!-- Spring的数据访问异常转换器(Data Access Exception Translator)定义 --><bean id="jdbcExceptionTranslator" class="org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator"><propertyname="dataSource"><ref bean="dataSource" /></property></bean><bean id="userDao" class="com.yaya.service.dao.hibernate.UserHibernateDao"><propertyname="sessionFactory"><ref local="sessionFactory" /></property></bean><bean id="userManagerTarget" class="com.yaya.service.spring.UserManagerImpl"><propertyname="userDao"><ref local="userDao" /></property></bean><bean id="userManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"><propertyname="transactionManager"><ref bean="transactionManager" /></property><propertyname="target"><ref local="userManagerTarget" /></property><propertyname="proxyTargetClass"><value>true</value></property><propertyname="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------------------------------------------------ ------------------- 程序代码<?xmlversion="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration1.1//EN""http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"><struts-config><!-- 数据源--><data-sources></data-sources><!-- 表单 Bean--><form-beans><form-beanname="UserActionForm" type="org.apache.struts.validator.DynaValidatorForm"><form-propertyname="user" type="com.yaya.hb.Tsysuser" /></form-bean></form-beans><!-- 全局异常--><global-exceptions></global-exceptions><!-- 全局转发--><global-forwards></global-forwards><!-- 操作映射--><action-mappings><actionpath="/User" type="org.springframework.web.struts.DelegatingActionProxy"name="UserActionForm"scope="request"parameter="method"validate="false"><forwardname="list" path="/userlist.jsp" /><forwardname="edit" path="/userform.jsp" /></action></action-mappings><!-- 消息资源--><message-resourcesparameter="mvc_bpel_modelweb.resources.ApplicationResources"/><plug-inclassName="org.springframework.web.struts.ContextLoaderPlugIn"><set-propertyproperty="contextConfigLocation" value="/WEB-INF/action-servlet.xml"/></plug-in><plug-inclassName="org.apache.struts.validator.ValidatorPlugIn"><set-propertyproperty="pathnames" value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml"/></plug-in></struts-config> ------------------------------------------------------------------ UserHibernateDao.java Ad0.Cn------------------------------------------------ ------------------ 程序代码/* * 创建日期 2005-4-7 * * 更改所生成文 件模板为 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释 */ packagecom.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 extendsHibernateDaoSupport implements IUserDao ...{private Log log= LogFactory.getLog(UserHibernateDao.class);/**//* (非 Javadoc)*@see com.jandar.dao.IUserDAO#getUsers()*/public ListgetUsers() ...{returngetHibernateTemplate().find("from Tsysuser");}/**//* (非 Javadoc)*@see com.jandar.dao.IUserDAO#getUser(java.lang.Long)*/public TsysusergetUser(String username) ...{// TODO 自动生成方法存根 if (this.getHibernateTemplate() == null)...{System.out.println("error atthere");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)*/publicvoid saveUser(Tsysuseruser) ...{log.debug("xxxxxxx");System.out.println("yyyy");getHibernateTemplate().saveOrUpdate(user);if(log.isDebugEnabled()) ...{log.debug("usernameset to " +user.getUsername());}}/**//* (非 Javadoc)*@see com.jandar.dao.IUserDAO#removeUser(java.lang.Long)*/publicvoid removeUser(Stringusername) ...{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 extendsDispatchAction ...{private static Log log = LogFactory.getLog(UserAction.class);privateUserManagerImpl mgr =null;publicvoid 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 userIdindicates 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);returnmapping.findForward("list");}UserActionForm.set("user",user);//request.setAttribute("user",user); }catch(Exception e)...{e.printStackTrace();}}returnmapping.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());returnmapping.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 validationrules on this form ActionMessageserrors = form.validate(mapping, request);if(!errors.isEmpty())...{saveErrors(request, (ActionErrors) errors);returnmapping.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 ------------------------------------------------------------------- 程序代码 packagecom.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 extendsActionForm ...{/**//** 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 StringgetUsername() ...{return this.username;}publicvoid setUsername(Stringusername) ...{this.username=username;} public StringgetPasswords() ...{return this.passwords;}publicvoid setPasswords(Stringpasswords) ...{this.passwords=passwords;}public StringgetDeptno() ...{return this.deptno;}publicvoid setDeptno(Stringdeptno) ...{this.deptno=deptno;}public StringgetHeadship() ...{return this.headship;}publicvoid setHeadship(Stringheadship) ...{this.headship=headship;}public StringgetSex() ...{return this.sex;}publicvoid setSex(String sex)...{this.sex = sex;}public StringgetTel() ...{return this.tel;}publicvoid setTel(String tel)...{this.tel = tel;}public StringgetEmail() ...{return this.email;}publicvoid setEmail(Stringemail) ...{this.email=email;}public StringgetUrl() ...{return this.url;}publicvoid setUrl(String url)...{this.url = url;}public StringgetPcall() ...{return this.pcall;}publicvoid setPcall(Stringpcall) ...{this.pcall=pcall;}public StringgetUserphoto() ...{return this.userphoto;}publicvoid setUserphoto(Stringuserphoto) ...{this.userphoto=userphoto;}public IntegergetFacerefutime() ...{return this.facerefutime;}publicvoid setFacerefutime(Integer facerefutime) ...{this.facerefutime=facerefutime;}public StringgetFacelanguage() ...{return this.facelanguage;}publicvoid setFacelanguage(String facelanguage) ...{this.facelanguage=facelanguage;}public StringgetLastmodif() ...{return this.lastmodif;}publicvoid setLastmodif(Stringlastmodif) ...{this.lastmodif=lastmodif;}public DategetLastmdate() ...{return this.lastmdate;}publicvoid setLastmdate(Datelastmdate) ...{this.lastmdate=lastmdate;}public StringgetCreadtor() ...{return this.creadtor;}publicvoid setCreadtor(Stringcreadtor) ...{this.creadtor=creadtor;}public DategetCreatdate() ...{return this.creatdate;}publicvoid setCreatdate(Datecreatdate) ...{this.creatdate=creatdate;}/**//***@return*/public StringgetUserdesc() ...{return userdesc;}/**//***@param string*/publicvoid setUserdesc(Stringstring) ...{userdesc =string;}}------------------------------------------------------------------ Tsysuser.java Ad0.Cn------------------------------------------------ ------------------ 程序代码package com.yaya.hb; import java.io.InputStream; import java.io.Serializable; import java.util.Date; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; /** @author Hibernate CodeGenerator */ public class Tsysuser implements Serializable { /** 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; /** full constructor */ public Tsysuser(String username, String userdesc, String passwords, String deptno, String headship, String sex, String tel, String email, String url, String pcall, InputStream userimage, String userphoto, Integer facerefutime, String facelanguage, String lastmodif, Date lastmdate, String creadtor, Date creatdate) { this.username = username; this.userdesc = userdesc; this.passwords = passwords; this.deptno = deptno; this.headship = headship; this.sex = sex; this.tel = tel; this.email = email; this.url = url; this.pcall = pcall; this.userphoto = userphoto; this.facerefutime = facerefutime; this.facelanguage = facelanguage; this.lastmodif = lastmodif; this.lastmdate = lastmdate; this.creadtor = creadtor; this.creatdate = creatdate; } /** default constructor */ public Tsysuser() { } public String getUsername() { return this.username; } public void setUsername(String username) { this.username = username; } public String getUserdesc() { return this.userdesc; } public void setUserdesc(String userdesc) { this.userdesc = userdesc; } 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; } public String toString () { return new ToStringBuilder(this) .append("username", getUsername()) .append("userdesc", getUserdesc()) .append("passwords", getPasswords()) .append ("deptno", getDeptno()) .append("headship", getHeadship()) .append("sex", getSex()) .append("tel", getTel()) .append("email", getEmail()) .append("url", getUrl()) .append("pcall", getPcall()) .append("userphoto", getUserphoto()) .append ("facerefutime", getFacerefutime()) .append("facelanguage", getFacelanguage()) .append("lastmodif", getLastmodif()) .append("lastmdate", getLastmdate()) .append ("creadtor", getCreadtor()) .append("creatdate", getCreatdate()) .toString(); } public boolean equals(Object other) { if ( !(other instanceof Tsysuser) ) return false; Tsysuser castOther = (Tsysuser) other; return new EqualsBuilder() .append(this.getUsername(), castOther.getUsername()) .append(this.getUserdesc(), castOther.getUserdesc()) .append(this.getPasswords(), castOther.getPasswords()) .append(this.getDeptno(), castOther.getDeptno()) .append(this.getHeadship(), castOther.getHeadship()) .append(this.getSex(), castOther.getSex()) .append (this.getTel(), castOther.getTel()) .append(this.getEmail(), castOther.getEmail()) .append(this.getUrl(), castOther.getUrl()) .append(this.getPcall(), castOther.getPcall ()) .append(this.getUserphoto(), castOther.getUserphoto()) .append (this.getFacerefutime(), castOther.getFacerefutime()) .append(this.getFacelanguage(), castOther.getFacelanguage()) .append(this.getLastmodif(), castOther.getLastmodif()) .append(this.getLastmdate(), castOther.getLastmdate()) .append(this.getCreadtor(), castOther.getCreadtor()) .append(this.getCreatdate(), castOther.getCreatdate()) .isEquals(); } public int hashCode() { return new HashCodeBuilder() .append(getUsername()) .append(getUserdesc()) .append(getPasswords()) .append(getDeptno()) .append(getHeadship()) .append(getSex()) .append (getTel()) .append(getEmail()) .append(getUrl()) .append(getPcall()) .append(getUserphoto()) .append(getFacerefutime()) .append(getFacelanguage()) .append(getLastmodif()) .append(getLastmdate()) .append(getCreadtor()) .append(getCreatdate()) .toHashCode(); } } -------------------- ------------------------------------------------- IUserManager.java --------------- ------------------------------------------------------ package com.yaya.service; import java.util.List; import com.yaya.hb.Tsysuser; import com.yaya.service.dao.IUserDao; public interface IUserManager { public void setUserDAO(IUserDao userDao); public Tsysuser getUser(String username); public List getUsers(); public void saveUser(Tsysuser user); public void removeUser(String username); } -------------------------------------------------------------------- IDAO.java -------------------------------------------------------------------- 程序代码/* * 创建日期 2005-4-7 * * 更改所生成文 件模板为 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释 */ package com.yaya.service.dao; /** * @author Administrator * * 更改所生成类型注释 的模板为 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释 */ public interface IDAO { } -------------------------------------------------------------- IUserDao.java -------------------------------------------------------------- 程序代码/* * 创建日期 2005-4-11 * * 更改所生成 文件模板为 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释 */ package com.yaya.service.dao; import java.util.List; import com.yaya.hb.Tsysuser; /** * @author Administrator * * 更改所生成类 型注释的模板为 * 窗口 > 首选项 > Java > 代码生成 > 代码和注释 */ public interface IUserDao extends IDAO { public List getUsers(); public Tsysuser getUser(String username); public void saveUser(Tsysuser user); public void removeUser(String username); } ------------ ---------------------------------------------- UserManagerImpl.java --------------- ------------------------------------------- 程序代码package com.yaya.service.spring; import com.yaya.hb.Tsysuser; import com.yaya.service.IUserManager; import com.yaya.service.dao.IUserDao; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class UserManagerImpl implements IUserManager { private static Log log = LogFactory.getLog(UserManagerImpl.class); public IUserDao dao; public void setUserDao(IUserDao userDao) { this.dao = userDao; this.setUserDAO(userDao); } public Tsysuser getUser(String username) { return dao.getUser (username); } public List getUsers() { return dao.getUsers(); } public void saveUser(Tsysuser user) { dao.saveUser(user); } public void removeUser(String username) { // TODO 自动生成方法存根 dao.removeUser (username); } public void setUserDAO(IUserDao dao) { // TODO 自动 生成方法存根 this.dao = dao; } } ----------------------------------------------------------------- Tsysuser.hbm.xml ----------------------------------------------------------------- 程序代码<?xml version="1.0"?> <!DOCTYPE hibernate -mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" > <hibernate-mapping> <!-- Created by the Middlegen Hibernate plugin http://boss.bekk.no/boss/middlegen/ http://hibernate.sourceforge.net/ --> <class name="com.yaya.hb.Tsysuser" table="t_sysuser"> <id name="username" type="java.lang.String" column="USERNAME"> <generator class="identity" /> </id> <property name="userdesc" type="java.lang.String" column="USERDESC" length="30" /> <property name="passwords" type="java.lang.String" column="PASSWORDS" length="30" /> <property name="deptno" type="java.lang.String" column="DEPTNO" length="30" /> <property name="headship" type="java.lang.String" column="HEADSHIP" length="30" /> <property name="sex" type="java.lang.String" column="SEX" length="4" /> <property name="tel" type="java.lang.String" column="TEL" length="18" /> <property name="email" type="java.lang.String" column="EMAIL" length="30" /> <property name="url" type="java.lang.String" column="URL" length="30" /> <property name="pcall" type="java.lang.String" column="PCALL" length="20" /> <property name="userphoto" type="java.lang.String" column="USERPHOTO" length="255" /> <property name="facerefutime" type="java.lang.Integer" column="FACEREFUTIME" length="6" /> <property name="facelanguage" type="java.lang.String" column="FACELANGUAGE" length="1" /> <property name="lastmodif" type="java.lang.String" column="LASTMODIF" length="30" /> <property name="lastmdate" type="java.sql.Timestamp" column="LASTMDATE" length="19" /> <property name="creadtor" type="java.lang.String" column="CREADTOR" length="30" /> <property name="creatdate" type="java.sql.Timestamp" column="CREATDATE" length="19" /> <!-- associations --> </class> </hibernate-mapping> ------------------------------------------------------------------- 创建数据库脚本 用于MYSQL ---------------------------------------------------------------- --- 程序代码Create TABLE `t_sysuser` ( `USERNAME` varchar(30) NOT NULL default '', `USERDESC` varchar(30) default NULL, `PASSWORDS` varchar(30) default NULL, `DEPTNO` varchar(30) default NULL, `HEADSHIP` varchar(30) default NULL, `SEX` varchar(4) default NULL, `TEL` varchar(15) default NULL, `EMAIL` varchar(30) default NULL, `URL` varchar(30) default NULL, `PCALL` varchar(20) default NULL, `USERPHOTO` varchar(255) default NULL, `FACEREFUTIME` decimal(6,0) default NULL, `FACELANGUAGE` char(1) default NULL, `LASTMODIF` varchar(30) default NULL, `LASTMDATE` datetime default NULL, `CREADTOR` varchar(30) default NULL, `CREATDATE` datetime default NULL, PRIMARY KEY (`USERNAME`) ) TYPE=MyISAM; ----------------------------------------------------------- 提示: COPY几个资源文件 validation.xml 和 validator-rules.xml 前台使用的几个JSP文件如下: ----------------------------------------------------------- index.jsp ------- ---------------------------------------------------- 程序代码<?xml version="1.0"?> <!DOCTYPE hibernate -mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" > <hibernate-mapping> <!-- Created by the Middlegen Hibernate plugin http://boss.bekk.no/boss/middlegen/ http://hibernate.sourceforge.net/ --> <class name="com.yaya.hb.Tsysuser" table="t_sysuser"> <id name="username" type="java.lang.String" column="USERNAME"> <generator class="identity" /> </id> <property name="userdesc" type="java.lang.String" column="USERDESC" length="30" /> <property name="passwords" type="java.lang.String" column="PASSWORDS" length="30" /> <property name="deptno" type="java.lang.String" column="DEPTNO" length="30" /> <property name="headship" type="java.lang.String" column="HEADSHIP" length="30" /> <property name="sex" type="java.lang.String" column="SEX" length="4" /> <property name="tel" type="java.lang.String" column="TEL" length="18" /> <property name="email" type="java.lang.String" column="EMAIL" length="30" /> <property name="url" type="java.lang.String" column="URL" length="30" /> <property name="pcall" type="java.lang.String" column="PCALL" length="20" /> <property name="userphoto" type="java.lang.String" column="USERPHOTO" length="255" /> <property name="facerefutime" type="java.lang.Integer" column="FACEREFUTIME" length="6" /> <property name="facelanguage" type="java.lang.String" column="FACELANGUAGE" length="1" /> <property name="lastmodif" type="java.lang.String" column="LASTMODIF" length="30" /> <property name="lastmdate" type="java.sql.Timestamp" column="LASTMDATE" length="19" /> <property name="creadtor" type="java.lang.String" column="CREADTOR" length="30" /> <property name="creatdate" type="java.sql.Timestamp" column="CREATDATE" length="19" /> <!-- associations --> </class> </hibernate-mapping> ------------------------------------------------------------------ userlist.jsp ------------------------------------------------------------------ 程序代码<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <%@ taglib uri="/WEB-INF/struts- logic.tld" prefix="logic" %> <html:html locale="true"> <head> <title><bean:message key="pdmweb.title"/></title> </head> <body> <table class="list"> <thead> <tr bgcolor="#8080ff"> <td bgcolor="#8080ff"><bean:message key="listuser.username" /></td> <td bgcolor="#8080ff"><bean:message key="listuser.userdesc" /></td> <td bgcolor="#8080ff"><bean:message key="listuser.sex" /></td> </tr> </thead> <tbody> <logic:iterate id="user" name="users"> <tr> <td bgcolor="#ff8040"><A href="User.do?method=edit&username=<bean:write name="user" property="username"/>" ><bean:write name="user" property="username" /> </a> </td> <td bgcolor="#ff8040"><bean:write name="user" property="userdesc" /></td> <td bgcolor="#ff8040"><logic:equal name="user" property="sex" value="0"> <bean:message key="listuser.sex0" /> </logic:equal> <logic:equal name="user" property="sex" value="1"> <bean:message key="listuser.sex1" /> </logic:equal></td> </tr> </logic:iterate> </tbody> </table> </body> </html:html> ------------------------------------------------------------------- userform.jsp ------------------------------------------------------------------ 程序代码<%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> <%@ taglib uri="/WEB-INF/struts- logic.tld" prefix="logic" %> <%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html:html locale="true"> <head> <html:base /> <title>userform.jsp</title> </head> <body> <html:form action="User.do?method=save" method="post" focus="user.userdesc" > <html:text property="user.username" /> <br> <html:text property="user.userdesc" /><br> <html:text property="user.deptno" /><br> <html:submit property="tijiao" /> </html:form> </body> </html:html>
史上最简单的struts+spring+hibernate配置实例
最新推荐文章于 2024-08-12 17:02:49 发布