<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    J2EE劍俠行

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

    常用鏈接

    統計

    技術鏈接

    最新評論

    #

    終于搬家了

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

    posted @ 2005-12-19 11:31 @家軍 閱讀(555) | 評論 (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 @家軍 閱讀(439) | 評論 (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 @家軍 閱讀(1001) | 評論 (0)編輯 收藏

    打不死的心態活到老

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

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

    開源代碼學習:Lucane Groupware

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

    posted @ 2005-12-19 11:23 @家軍 閱讀(697) | 評論 (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 @家軍 閱讀(953) | 評論 (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外,均可以做為二次開發時附加的程序片段,我想作者的思路可以是基于一個穩定產品上的二次產品開發吧?;蛘呒刹煌Z言版本的 產品,比如DYNAPDM(韓國的一家PDM提供商)就是使用BEANSHELL來做二次開發的,我想DYNAPDM可以使用XMOOM把自己的產品進行 擴展,從而從CS方式的操作放在網頁上來做。等等。

    posted @ 2005-12-19 11:20 @家軍 閱讀(567) | 評論 (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 @家軍 閱讀(870) | 評論 (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 @家軍 閱讀(4451) | 評論 (5)編輯 收藏

    開源項目學習:XINS

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


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

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

    僅列出標題
    共5頁: 上一頁 1 2 3 4 5 下一頁 
    主站蜘蛛池模板: 久久久久久久久亚洲| 亚洲一区在线免费观看| 久久99国产乱子伦精品免费| 亚洲冬月枫中文字幕在线看| 性感美女视频免费网站午夜| 又硬又粗又长又爽免费看| 99久久亚洲综合精品成人网| 成人免费a级毛片| 国产一级a毛一级a看免费人娇 | 亚洲精品综合久久中文字幕| 国产精品jizz在线观看免费| 精品亚洲永久免费精品| 亚洲av永久无码精品网址| 亚洲AV午夜成人片| 日韩成人免费aa在线看| 男女作爱在线播放免费网站| 国产精品亚洲片在线花蝴蝶 | 成人毛片100免费观看| 亚洲同性男gay网站在线观看| 免费在线观看的黄色网址| 日本h在线精品免费观看| 一级毛片免费不卡直观看| 亚洲国产精品乱码在线观看97| 亚洲区不卡顿区在线观看| 免费黄网在线观看| 久久ww精品w免费人成| WWW国产成人免费观看视频| 亚洲色成人四虎在线观看| 亚洲VA中文字幕无码毛片 | 久久亚洲AV无码西西人体| 国产在线观看免费观看不卡| a毛片在线免费观看| 香蕉视频免费在线播放| 亚洲精品无码一区二区 | 亚洲欧美成人综合久久久| 亚洲欧洲国产精品你懂的| 中文字幕亚洲无线码a| 全部免费毛片在线| 女人18特级一级毛片免费视频| 99视频在线免费看| 免费观看男人吊女人视频|