J2EE劍俠行

          直覺我的J2EE應用生涯,打造我心中的一把利劍。

          常用鏈接

          統計

          技術鏈接

          最新評論

          #

          終于搬家了

          今天從JAVAEYE上我的BLOG搬遷到了BLOGJAVA上,呵呵,我這里只發表原創的文章。
          呵呵,我要成為J2EE江湖當中,武藝最高強的人,像胡斐一樣,也像老頑童一樣。不過,我一來到BLOGJAVA上,就吸引了這么眼球,看來是一件好事。

          posted @ 2005-12-19 11:31 @家軍 閱讀(561) | 評論 (5)編輯 收藏

          史上最簡單的struts+spring+hibernate配置實例[修訂版]

          本文不關心必須的JAR包,這個東東在網上能夠找到很多,本文只關心如何配置,才能夠讓STRUTS SPRING HIBERNATE和MYSQL相關連。
          開發環境:wsad5.1
          Spring-Version: 1.1.4
          Struts Framework 1.1
          Hibernate-Version: 2.1.7

          <web.xml>
          ---------------------------------
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-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"
          "http://www.springframework.org/dtd/spring-beans.dtd">

          <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" "http://www.springframework.org/dtd/spring-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</value>
          </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>
          -------------------------------------------------------------------
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

          <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
          ------------------------------------------------------------------
          /*
          * 創建日期 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
          --------------------------------------------------------------------
          /*
          * 創建日期 2005-4-11
          *
          * 更改所生成文件模板為
          * 窗口 > 首選項 > 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
          -------------------------------------------------------------------
          /*
          * 創建日期 2005-3-29
          *
          * 更改所生成文件模板為
          * 窗口 > 首選項 > 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;
          }


          }
          ------------------------------------------------------------------
          TSysuser.java
          ------------------------------------------------------------------
          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(1Cool 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>
          --------------------------------------------------------------
          如果有什么疑問可以致電郵至 heweiya@yahoo.com.cn,互相交流,互相學習。

          posted @ 2005-12-19 11:27 @家軍 閱讀(444) | 評論 (1)編輯 收藏

          配置Springframework與hibernate連接多數據庫的事務

          本文只注重配置,分別有如下幾個文件
          <出處:和巍雅的BLOG
          web.xml 部署配置文件
          struts-config.xml struts的配置文件
          action-servlet.xml Spring依賴注入struts
          Nhibernate_Context.xml Spring依賴注入struts
          hibernate.cfg.xml mssql的Hibernate配置
          hibernate_mysql.cfg.xml mysql的Hibernate配置 
          開始:
          web.xml
          ------------------------------------------------------------------------
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
          <web-app id="WebApp">
          <display-name>EAIJ2EEPRJWeb</display-name>
          <context-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/Nhibernate_Context.xml</param-value>
          </context-param>
          <filter>
          <filter-name>SetCharacterEncodingFilter</filter-name>
          <display-name>SetCharacterEncodingFilter</display-name>
          <filter-class>com.throuhout.j2eemodel.util.SetCharacterEncodingFilter</filter-class>
          <init-param>
          <param-name>encoding</param-name>
          <param-value>UTF-8</param-value>
          </init-param>
          <init-param>
          <param-name>ignore</param-name>
          <param-value>true</param-value>
          </init-param>
          </filter>
          <filter-mapping>
          <filter-name>SetCharacterEncodingFilter</filter-name>
          <url-pattern>/*</url-pattern>
          </filter-mapping>
          <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>
          <servlet-name>SpringContextServlet</servlet-name>
          <display-name>SpringContextServlet</display-name>
          <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
          <load-on-startup>1</load-on-startup>
          </servlet>
          <servlet-mapping>
          <servlet-name>action</servlet-name>
          <url-pattern>*.do</url-pattern>
          </servlet-mapping>
          <mime-mapping>
          <extension>wsdl</extension>
          <mime-type>text/xml</mime-type>
          </mime-mapping>
          <mime-mapping>
          <extension>xsd</extension>
          <mime-type>text/xml</mime-type>
          </mime-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>
          ---------------------------------------------------------------------
          struts_config.xml
          ---------------------------------------------------------------------
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

          <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.throuhout.j2eemodel.hibernate.TSysuser" />
          </form-bean>
          <form-bean name="UserMenuActionForm" type="org.apache.struts.validator.DynaValidatorForm">
          <form-property name="menu" type="com.throuhout.j2eemodel.hibernate.TSysmufudef">
          </form-property>
          </form-bean>
          </form-beans>

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


          <!-- 全局轉發 -->
          <global-forwards>
          <forward name="success" path="/main/success.jsp"></forward>
          <forward name="failure" path="/main/fail.jsp"></forward>
          </global-forwards>

          <!-- 操作映射 -->
          <action-mappings>
          <action path="/User" type="org.springframework.web.struts.DelegatingActionProxy" name="UserActionForm" scope="request" parameter="method" validate="false">
          <forward name="sucess" path="/main/project_index.htm" />
          <forward name="false" path="/failure.html"></forward>
          <forward name="list" path="/main/userlist.jsp">
          </forward>
          <forward name="edit" path="/main/userform.jsp">
          </forward>
          </action>
          <action path="/UserMenu" type="org.springframework.web.struts.DelegatingActionProxy" name="UserMenuActionForm" scope="request" parameter="method" validate="false">
          <forward name="menu" path="/main/menu.jsp"></forward>
          <forward name="usermenu" path="/main/usermenu.jsp">
          </forward>
          </action>
          </action-mappings>

          <!-- 消息資源 -->
          <message-resources parameter="eaij2eeprjweb.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>
          -------------------------------------------------------------------
          action-servlet.xml
          --------------------------------------------------------------------
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
          "http://www.springframework.org/dtd/spring-beans.dtd">

          <!-- Spring依賴注入到Struts當中 -->
          <beans>
          <bean name="/User" class="com.throuhout.j2eemodel.struts.action.UserAction" singleton="false">
          <property name="userManager">
          <ref bean="userManager" />
          </property>
          </bean>
          <bean name="/UserMenu" class="com.throuhout.j2eemodel.struts.action.UserMenuAction" singleton="false">
          <property name="userManager">
          <ref bean="userManager" />
          </property>
          </bean>

          </beans>
          -------------------------------------------------------------------
          Nhibernate_Context.xml
          --------------------------------------------------------------------
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
          "http://www.springframework.org/dtd/spring-beans.dtd">
          <!-- Spring依賴注入到Struts當中 -->
          <!-- Hibernate SessionFactory -->
          <beans>
          <bean id="mssqlSessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">

          <property name="configLocation">
          <value>classpath:hibernate.cfg.xml</value>
          </property>

          <property name="hibernateProperties">
          <props>
          <prop key="hibernate.dialect">net.sf.hibernate.dialect.SybaseDialect</prop>

          <!--<prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
          <prop key="hibernate.cache.provider_class">net.sf.hibernate.cache.OSCacheProvider</prop>-->
          <prop key="hibernate.jdbc.fetch_size">50</prop>
          <prop key="hibernate.jdbc.batch_size">25</prop>
          </props>
          </property>
          </bean>

          <bean id="mysqlSessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
          <property name="configLocation">
          <value>classpath:hibernate_mysql.cfg.xml</value>
          </property>

          <property name="hibernateProperties">
          <props>
          <!--<prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
          <prop key="hibernate.cache.provider_class">net.sf.hibernate.cache.OSCacheProvider</prop>-->
          <prop key="hibernate.jdbc.fetch_size">50</prop>
          <prop key="hibernate.jdbc.batch_size">25</prop>
          </props>
          </property>
          </bean>

          <!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->

          <bean id="mysqltransactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">
          <property name="sessionFactory">
          <ref local="mysqlSessionFactory" />
          </property>
          </bean>

          <bean id="mssqltransactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">
          <property name="sessionFactory">
          <ref local="mssqlSessionFactory" />
          </property>
          </bean>

          <!--
          <bean id="aDao" class="com.plat.dao.user.impl.aDaoImpl">
          <property name="sessionFactory">
          <ref local="oracleSessionFactory" />
          </property>
          </bean>
          -->
          <bean id="userDao" class="com.throuhout.j2eemodel.spring.service.dao.hibernate.UserHibernateDao">
          <property name="sessionFactory">
          <ref local="mysqlSessionFactory" />
          </property>
          </bean>


          <!-- Service -->
          <bean id="userManagerTarget" class="com.throuhout.j2eemodel.spring.service.UserManagerImpl">
          <property name="userDao">
          <ref local="userDao" />
          </property>
          </bean>

          <bean id="userManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
          <property name="transactionManager">
          <ref bean="mysqltransactionManager" />
          </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>
          ---------------------------------------------------------------------
          hibernate.cfg.xml
          ---------------------------------------------------------------------
          <?xml version='1.0' encoding='utf-8'?>
          <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
          "hibernate-configuration-2.0.dtd">

          <hibernate-configuration>

          <session-factory>
          <property name="show_sql">true</property>
          <property name="use_outer_join">false</property>

          <property name="hibernate.dialect">net.sf.hibernate.dialect.SybaseDialect</property>

          <property name="hibernate.connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>

          <property name="hibernate.connection.url">jdbc:jtds:sqlserver://192.168.100.111:1433/testdb</property>
          <property name="hibernate.connection.username">sa</property>
          <property name="hibernate.connection.password">yaya</property>
          <!--
          <property name="hibernate.connection.url">jdbc:jtds:sqlserver://192.168.100.148:1433/throughoutdb</property>
          <property name="hibernate.connection.username">siaote</property>
          <property name="hibernate.connection.password">siaote</property>
          -->
          <property name="hibernate.connection.pool.size">20</property>
          <property name="session_factory_name">mssqlSessionFactory</property>

          <!-- Mapping files -->
          <mapping resource="hbm_tb/T_COST_TYPE.hbm.xml" />


          </session-factory>
          </hibernate-configuration>
          -------------------------------------------------------------------
          hibernate_mysql.cfg.xml
          -------------------------------------------------------------------
          <?xml version='1.0' encoding='utf-8'?>
          <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
          "hibernate-configuration-2.0.dtd">

          <hibernate-configuration>

          <session-factory>
          <property name="show_sql">true</property>
          <property name="use_outer_join">false</property>

          <property name="hibernate.dialect">net.sf.hibernate.dialect.MySQLDialect</property>

          <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>

          <property name="hibernate.connection.url">jdbc:mysql://localhost/pdm</property>
          <property name="hibernate.connection.username">root</property>
          <property name="hibernate.connection.password"></property>

          <property name="hibernate.connection.pool.size">20</property>
          <property name="session_factory_name">mysqlSessionFactory</property>

          <!-- Mapping files -->
          <mapping resource="hbm_tb/TSysuser.hbm.xml" />
          <mapping resource="hbm_tb/TSysmufudef.hbm.xml" />


          </session-factory>
          </hibernate-configuration>

          ----------------------------------------------------------------
          本人的開發環境:
          開發工具:WSAD 5.1
          中間件服務器:tomcat 4.24
          數據庫:mysql\mssql 完全通過。
          你可以和 heweiya@yahoo.com.cn 聯系

          posted @ 2005-12-19 11:26 @家軍 閱讀(1008) | 評論 (0)編輯 收藏

          打不死的心態活到老

          詞:小美曲:黃家駒
          無聊望見了猶豫
          達到理想不太易
          即使有信心
          斗志卻抑止
          誰人定我去和留
          定我心中的宇宙
          只想靠兩手向理想揮手
          問句天機高心中志比天更高
          自信打不死的心態活到老
          oh…我有我心底故事
          親手寫上每段得失樂與悲與夢兒
          oh…縱有創傷不退避
          夢想有日達成找到心底夢想的世界
          終可見
          誰人沒試過猶豫
          達到理想不太易
          即使有信心
          斗志卻抑止
          誰人定我去和留
          定我心中的宇宙
          只想靠兩手向理想揮手
          問句天機高心中志比天更高
          自信打不死的心態活到老
          oh…我有我心底故事
          親手寫上每段得失樂與悲與夢兒
          oh…縱有創傷不退避
          夢想有日達成找到心底夢想的世界
          終可見
          oh...親手寫上每段得失樂與悲與夢兒
          oh...夢想有日達成找到心底夢想的世界
          終可見

          posted @ 2005-12-19 11:24 @家軍 閱讀(714) | 評論 (0)編輯 收藏

          開源代碼學習:Lucane Groupware

          Lucane Groupware是一個用Java編寫的免費的群件,設計具有高度的可擴展性。綁定的應用程序有即時消息,文件共享,聊天,論壇,個人注釋,共享的日歷...這個平臺是開發網絡應用程序的一種簡單方法。
          這兩天用了一次lucane這個協同管理軟件,感覺很不錯,應該在項目管理當中是一個很值得推薦的實現方案,因為他是支持插件式的開發,我想假如把CITIA、PTC等3D制造軟件的控件也加入,肯定是一個很好用的協同制造平臺。

          posted @ 2005-12-19 11:23 @家軍 閱讀(702) | 評論 (0)編輯 收藏

          開源代碼學習:Proteus/OpenQueue/eXtremeTable/Struts-Layout

          這一段時間拼命學習了一些開源實現:
          Proteus
          Proteus是一個用于創建消息應用程序的框架和在這個框架上構建的一個消息代理(message broker).Proteus有一個允許把數據庫,消息隊列,ftp服務器,email和其它消息源匯集起來以一種簡單,統一方式進行編址的適配器.
          這個工具使用自定義的XML文件,可以使用JDBC方便的插入到指定的數據庫記錄,同樣也可以與消息服務器連接使用。在XML文件使用時,可以考慮之,能夠快速的完成業務過程(當然復雜的業務就不要用了)。
          OpenQueue
          OpenQueue是一個用于發布與訂閱消息隊列的開放協議。這使得運行在不同機器上的,采用不同語言開發的且沒有聯系的應用程序之間能夠進行異步通信。
          這個工具的思想很特別,作者把所有的事務都發布到TELNET當中去使用。使用的必備條件如下:
          * Passamaquoddy -- an OpenQueue server, written in Java.
          * OQApplet -- an OpenQueue client, written as a Java applet.
          * oqsend.exp -- an Expect script for sending one OpenQueue message.
          但是我現在也不知道如何把oqsend.exp打包成為一個ACTIVEX控件,在WINDOWS下面使用,如果看官你看到了就和我聯系共同學習,共同進步。
          eXtremeTable
          eXtremeTable是一個可擴展的用于以表格的形式來顯示數據的一組JSP標簽庫.,這個標簽庫我沒有配置成功,但是應該是比DISPLAYTAG好一些吧。因為DISPLAYTAG一次讀取出所有數據,是比較費內存的,設計思想不是很好了。
          eXtremeTable是新一代的標簽庫,設計思想比較好一些,但是感覺他的DEMO的CSS實在是難看。呵呵,有潛力,應該好好學習。
          Struts-Layout
          Struts-Layout是一個用在Struts的標簽庫.這個強大的標簽庫可以用來顯示面板(panels),輸入框,表格,treeviews, sortable lists,datagrids,popups,日歷等.使用這些標簽可以不用寫HTML代碼,甚至可以不用懂得HTML.這個項目還提供一個 Eclipse下的插件Kiwi幫助使用Struts和Struts-Layout來開發Jsp頁面.。
          我對之深入學習了一段時間,也做了一些示例,感覺作者想把在傳統CS當中的思想應用在BS當中,雖然操作比較方便,但是業務安全性好象這樣的需求很少,而且感覺它的性能也不是很好。
          從這一次對標簽庫的 操作后,我感覺以后前臺顯示肯定會有一個軟件坐很長時間的寶座,而eXtremeTable將很有可能沖擊這個位置,那么以后的輕量級的J2EE應用會更廣泛,集成度會更高。

          posted @ 2005-12-19 11:21 @家軍 閱讀(958) | 評論 (0)編輯 收藏

          開源代碼學習:Crispy/Red-Piranha /XMoon

          Crispy

          利用Crispy提供的一個統一接口,你可以調用 RMI,WebService,REST,XML-RPC,EJB,Burlap,Hessian等其它服務.你不需要知道這些服務是怎樣工作的,要調用 的服務類型可在properties文件中定義.遠程調用就像簡單Java對象調用一樣,你可以把Crispy集成到一個SOA(Service Oriented Architecture)或RCP(Rich Client Platform)中.
          初步看了本網站的資料,感覺作者的思維比較先進,是主要的把他的思想融入到SOA當中,而且為遠程服務提供統一的接口,雖然說能夠讓用戶可以不 理解遠程服務就直接去調用相關服務,但是說這樣傻瓜式的引用會不會把相應服務的異常,比如SHIT DOWN或者服務障礙等做出相應的處理,等等。應該是 一個比較超強的軟件,并且是為了提供WEB服務的統一規范而做的工作。
          因為我現在只使用RMI一種服務,所以沒有考慮使用之,假如要使用至少兩種以上的遠程調用服務時,可以考慮使用這種工具。
          Red-Piranha

          Red-Piranha是一個開源搜索系統,它能夠真正"學習"你所要查找的是什么.Red-Piranha可作為你桌面系統(Windows, Linux與Mac)的個人搜索引擎,或企業內部網搜索引擎,或為你的網站提供搜索功能,或作為一個P2P搜索引擎,或與wiki結合作為一個知識/文檔 管理解決方案,或搜索你要的RSS聚合信息,或搜索你公司的系統(包括SAP,Oracle或其它任何Database/Data source),或用于管理PDF,Word和其它文檔,或作為一個提供搜索信息的WebService或為你的應用程序(Web,Swing,SWT, Flash,Mozilla-XUL,PHP, Perl或c#/.Net)提供搜索后臺等等.
          你使用這種工具呀,絕對感覺是GOOGLE的翻版,應該來說它的功能比較強大,現還不知道他的性能如何,應該多多研究,最少這種解決方案可以一用。呵呵,開源就是好。
          另外,本軟件暫時不支持中文目錄,還有在執行一次本地查詢時,CPU使用率竟然達到100%,他的性能應該考慮了。
          XMoon

          XMoon擴展自Jakarta Struts框架用于開發處理基于XML或一些腳本語言(如: BeanShell, JRuby, JudoScript, Jython,Rhino)的Web應用程序.它還提供一個用于展示該框架寵物店Demo.

          如上支持的除XML外,均可以做為二次開發時附加的程序片段,我想作者的思路可以是基于一個穩定產品上的二次產品開發吧。或者集成不同語言版本的 產品,比如DYNAPDM(韓國的一家PDM提供商)就是使用BEANSHELL來做二次開發的,我想DYNAPDM可以使用XMOOM把自己的產品進行 擴展,從而從CS方式的操作放在網頁上來做。等等。

          posted @ 2005-12-19 11:20 @家軍 閱讀(571) | 評論 (0)編輯 收藏

          DTREE如何認一個目錄節點打開一個URL

          方法及其簡單,見dtree.js的標準函數function(pNode),第107行:

          java代碼: 

          // Creates the tree structure
          dTree.prototype.addNode = function(pNode) {
                  var str 
          = '';
                  var n
          =0;
                  
          if (this.config.inOrder) n = pNode._ai;
                  
          for (n; n<this.aNodes.length; n++) {
                          
          if (this.aNodes[n].pid == pNode.id) {
                                  var cn 
          = this.aNodes[n];
                                  cn._p 
          = pNode;
                                  cn._ai 
          = n;
                                  
          this.setCS(cn);
                                  
          if (!cn.target && this.config.target) cn.target = this.config.target;
                                  
          if (cn._hc && !cn._io && this.config.useCookies) cn._io = this.isOpen(cn.id);
          [color
          =red]//注意下面的語句:[/color]
                                  if (!this.config.folderLinks && cn._hc) cn.url = null;
          [color
          =darkred]//如果想讓一個目錄節點也能夠打開一個URL則把上面的這句話關掉。
          //if (!this.config.folderLinks && cn._hc) cn.url = null;[/color]
                                  if (this.config.useSelection && cn.id == this.selectedNode && !this.selectedFound) {
                                                  cn._is 
          = true;
                                                  
          this.selectedNode = n;
                                                  
          this.selectedFound = true;
                                  }
                                  str 
          += this.node(cn, n);
                                  
          if (cn._ls) break;
                          }
                  }
                  
          return str;
          };

          posted @ 2005-12-19 11:17 @家軍 閱讀(876) | 評論 (0)編輯 收藏

          對OPENCMS漢化的總結,超準確

          說明:
          本部是你完全部署好OPENCMS時才可操作。
          1、COPY org.opencms.locales.zh_1.2.zip 至目錄D:\Tomcat5272\webapps\opencms\ WEB-INF\packages\modules,哈哈,你不知道D:\Tomcat5272\webapps\吧,可能你的硬盤上沒有,但是你應該知 道這個是一個變量,而我現在常量。
          2、打開OPENCMS,在Administrator瀏覽界面里,使用“模塊”功能,然后“導入一個模塊”,選擇org.opencms.locales.zh_1.2.zip,然后導入。呵呵,是不是很爽 呢?
          現在最少你能夠在“參數設置”里找到中文了。
          然后呢,是不是就是結束了?
          呵呵,剛剛開始。
          假設你上面的工作都做完了,就應該是下面的操作了。
          1、另外應修改
          /system/workplace/resources/commons/explorer.js
          中的行:
          "<td>"+vr.langadress+"&</td>\n"
          為:"<td nowrap>"+vr.langadress+"</td>\n"
          2、這是一個循環。
            FOR I=1 TO 解壓開org.opencms.locales.zh_1.2.zip包.所有目錄,I++
          {
          COPY D:\2005年9月份\org.opencms.locales.zh_1.2\system\workplace\locales\zh\messages下所有文件
          TO D:\Tomcat5272\webapps\opencms\WEB-INF\classes
           COPY D:\2005年9月份\org.opencms.locales.zh_1.2\system\workplace\locales\zh\messages\org\opencms\workplace 下所有文件
           TO D:\Tomcat5272\webapps\opencms\WEB-INF\classes\org\opencms\workplace
          //下面的由讀者自己加入。直到加完為止。

          }
          3、重新啟動TOMCAT,然后再登錄。
          我敢保證百分百準確,呵呵。
          漢化包下載地址:[url=http://www.ganko.com.cn/exports/sites/ganko/down/org.opencms.locales.zh_1.2.zip]下載下載[/url]

          posted @ 2005-12-16 18:14 @家軍 閱讀(4459) | 評論 (5)編輯 收藏

          開源項目學習:XINS

          XINS是一項規范技術用于定義,創建和調用遠程 APIs。當API規范在XML文檔中定義好之后,XINS將會把它們轉換成包括客戶端與服務端的HTML文檔與Java代碼.XINS將與復雜的 SOAP技術競爭,因為它被設計得具有簡單性,可擴縮性與可測試性。簡要地說就是:SOA+Java+XML+ 代碼生成-復雜性 => XINS。


          初步看看這個開源項目,感覺很有意思,
          首先說:這個開源項目的領導者對商業有所研究,知道向M¥靠近,也就成功了一步,至于能不能向SOA挑戰,我還拭目以待。不過這個思想真是很簡單,我同樣感覺現行的WEB服務沒有太多的實用價值。就是有實用價值,他的入門也比較高。
          但愿這個技術能夠成熟起來。

          posted @ 2005-12-16 18:13 @家軍 閱讀(660) | 評論 (1)編輯 收藏

          僅列出標題
          共5頁: 上一頁 1 2 3 4 5 下一頁 
          主站蜘蛛池模板: 南汇区| 司法| 马关县| 曲阳县| 丰城市| 开鲁县| 台州市| 新乡市| 卢氏县| 十堰市| 南乐县| 郑州市| 黄浦区| 衡阳市| 济阳县| 姜堰市| 廊坊市| 万源市| 惠东县| 安庆市| 香河县| 屏山县| 安乡县| 玉屏| 玉树县| 江门市| 临漳县| 始兴县| 澎湖县| 德阳市| 泾源县| 太和县| 峨眉山市| 北安市| 永新县| 云梦县| 夏邑县| 长汀县| 东阳市| 灵石县| 大港区|