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

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

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

    隨筆 - 16  文章 - 0  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿

    隨筆檔案

    友情鏈接

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    第一步、配置實體Bean:
    @Entity
    @Table(name = "t_bd_city")
    public class City extends BaseObject {
       
        /**
         * 省份
         */
        @ManyToOne(fetch = FetchType.LAZY)
        @JoinColumn(name = "fprovinceid")
        private Province province;
    }

    第二步、手動提交保存方法:

    public abstract class CoreDaoHibernate<Entity extends CoreObject> implements CoreObjectDao<Entity> {

        /**
         * Log variable for all child classes. Uses LogFactory.getLog(getClass())
         * from Commons Logging
         */
        protected final Log log = LogFactory.getLog(getClass());
        private Class<Entity> persistentClass ;
        private HibernateTemplate hibernateTemplate;
        private SessionFactory sessionFactory;


        public CoreDaoHibernate(){
            Class<?> c = this.getClass();
            Type t = c.getGenericSuperclass();
            if(t instanceof ParameterizedType){
               this.persistentClass =  (Class<Entity>)((ParameterizedType) t).getActualTypeArguments()[0];
            }
        }

        public HibernateTemplate getHibernateTemplate() {
            return this.hibernateTemplate;
        }

        public SessionFactory getSessionFactory() {
            return this.sessionFactory;
        }

        @Autowired
        @Required
        public void setSessionFactory(SessionFactory sessionFactory) {
            this.sessionFactory = sessionFactory;
            this.hibernateTemplate = new HibernateTemplate(sessionFactory);
        }

        /**
         * {@inheritDoc}
         */
        @Override
        public Entity save(Entity object) {
            Entity result =  hibernateTemplate.merge(object);
            hibernateTemplate.flush();
            return result;
        }
    }

    第三步、配置web.xml
       <filter>
            <filter-name>lazyLoadingFilter</filter-name>
            <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
            <init-param>
                <param-name>sessionFactoryBeanName</param-name>
                <param-value>sessionFactory</param-value>
            </init-param>
            <init-param>
                <param-name>singleSession</param-name>
                <param-value>true</param-value>           
            </init-param>
            <init-param>
                <param-name>flushMode</param-name>
                <param-value>AUTO</param-value>        
            </init-param>
        </filter>
      <filter-mapping>
            <filter-name>lazyLoadingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>

    posted @ 2012-06-18 23:24 民工二代 閱讀(312) | 評論 (0)編輯 收藏
         摘要: 在線創建Oracle分區表
    第一步,檢查源表是否可以在線重定義;
    第二步、創建一張分區表做為中間表;
    第三步、拷備源表中的記錄;
    第四步、同步更新數據;
    第五步、轉換完成  閱讀全文
    posted @ 2012-06-18 09:23 民工二代 閱讀(351) | 評論 (0)編輯 收藏
    最近因為開發需要,自己做了一個小的Demo部署在網上,具體網址http://www.17chuxing.com,實現一個類似公交查詢的功能,目前基本上能夠正常運行。

    現在總結一下,以便以后查詢使用;
    一、技術方面
         1、demo的整體技術結構采用比較簡單的Struts+spring+hibernate,struts 可以定義全局的異常、返回值、攔截器,hibernate采用統一的Spring-hibernate模板進行數據提交,減少開發量。如果采用hiberante懶加載方式,需要手工flush(),web.xml需要增加lazyLoadingFilter;
        <filter>
            <filter-name>lazyLoadingFilter</filter-name>
            <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
        </filter>
         2、數據量較小采用了mySql作為數據庫,采用mysql需要注意的是早期的mysql版本,表名區分大小寫,a 與A的結果不一樣;
         3、在展現層方面采用sitemesh裝飾器對展現的頁面進行渲染(包括樣式、頁頭、頁腳、統計代碼),保證每個網頁的風格一致性,并且可以減少一定開發工作量;
            <filter>
                <filter-name>sitemesh</filter-name>
                <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
            </filter>

         4、采用gzipFilter對請求進行壓縮,減少每次請求所需網絡流量;
            <filter>
                <filter-name>gzipFilter</filter-name>
                <filter-class>net.sf.ehcache.constructs.web.filter.GzipFilter</filter-class>
            </filter>
         5、首頁盡可能減少跳轉(redirect),因為每次跳轉都需要一定的時間;

    二、部署流程
         1、申請域名
         2、選擇虛擬機托管商
         3、部署程序
         4、申請備案

    三、其他方面;
          1、向搜索引擎提交網站
          2、其它思考點,通過rewrite 技術實現反寫,生成相應的靜態文件;
    <filter>
            <filter-name>rewriteFilter</filter-name>
            <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
            <!-- sets up log level (will be logged to context log)
                can be: TRACE, DEBUG, INFO (default), WARN, ERROR, FATAL, log4j, commons, sysout:{level} (ie, sysout:DEBUG)
                if you are having trouble using normal levels use sysout:DEBUG -->
            <init-param>
                <param-name>logLevel</param-name>
                <param-value>commons</param-value>
            </init-param>
            <!-- set the amount of seconds the conf file will be checked for reload
                can be a valid integer (0 denotes check every time,
                -1 denotes no reload check, default -1) -->
            <init-param>
                <param-name>confReloadCheckInterval</param-name>
                <param-value>-1</param-value>
            </init-param>
        </filter>
    posted @ 2012-04-25 13:16 民工二代 閱讀(519) | 評論 (0)編輯 收藏
    調試環境:struts,Spring,jsp

    第一步:安裝插件
    在pom.xml文檔中增加相應依賴:

    <dependency>
       <groupId>org.sitemesh</groupId>
       <artifactId>sitemesh</artifactId>
       <version>2.4.2</version>
      </dependency>
      <dependency>
       <groupId>org.apache.struts</groupId>
       <artifactId>struts2-sitemesh-plugin</artifactId>
       <version>2.3.1.2</version>
      </dependency>

    第二步:配置監聽
    在web.xml文檔中,增加過濾器
    <!-- sitemesh 裝飾器 -->
     <filter>
          <filter-name>sitemesh</filter-name>
          <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class>
     </filter>
      <filter-name>sitemesh</filter-name>
          <url-pattern>*</url-pattern>
     </filter-mapping>

    第三部:配置裝飾器
    在WEB-INF文件夾下,新建裝飾器配置文檔:decorators.xml
    文檔內容如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE decorators PUBLIC "-//OpenSymphony//SiteMesh 1.5 Decorators//EN" "<decorators defaultdir="/decorators"><!--文件夾可以修改-->
     <!-- 放棄裝飾部分 -->
         <excludes>
              <pattern>/40*.jsp</pattern>
              <pattern>/*ajax=true*</pattern>
              <pattern>/scripts/dojo/*</pattern>
              <pattern>/struts/dojo/*</pattern>
              <pattern>/resources/*</pattern>
         </excludes>
     <!--裝飾名稱,可以設置多個-->
     <decorator name="default" page="default.jsp">
          <pattern>*</pattern>
     </decorator>
    </decorators>

    第四步  在WEB-INF文件夾下,新建sitemesh配置文檔:sitemesh.xml
    <sitemesh>
        <property name="decorators-file" value="/WEB-INF/decorators.xml"/>
        <excludes file="${decorators-file}"/>
        <page-parsers>
            <parser default="true" class="com.opensymphony.module.sitemesh.parser.FastPageParser"/>
            <parser content-type="text/html" class="com.opensymphony.module.sitemesh.parser.FastPageParser"/>
            <parser content-type="text/html;charset=ISO-8859-1" class="com.opensymphony.module.sitemesh.parser.FastPageParser"/>
        </page-parsers>

        <decorator-mappers>
            <mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
                <param name="config" value="${decorators-file}"/>
            </mapper>
        </decorator-mappers>
    </sitemesh>



    第五部:編寫裝飾模板并引用標簽
    在<decorators defaultdir="/decorators">指定的文件下,新加模板:default.jsp

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "
    <%@ page language="java" contentType="text/html; charset=UTF-8"
     pageEncoding="UTF-8"%>
    <%@ taglib uri="
    <%@ taglib uri="<html xmlns="<head>
        <%@ include file="/common/meta.jsp"%>
        <title><decorator:title /> | Demo</title>
        <decorator:head />
    </head>
    <body
         <decorator:getProperty property="body.id" writeEntireProperty="true"/>
         <decorator:getProperty property="body.class" writeEntireProperty="true"/>>
         <div id="page">
              <div id="header" class="clearfix">
               <jsp:include page="/common/header.jsp" />
              </div>

              <div id="content" class="clearfix">
               <div id="main">
               <%@ include file="/common/messages.jsp"%>
          <h1>
               <decorator:getProperty property="meta.heading" />
          </h1>
              <decorator:body />
         </div> 
      <c:set var="currentMenu" scope="request">
       <decorator:getProperty property="meta.menu" />
      </c:set>
     
      <div id="nav">
       <div class="wrapper"></div>
        <hr />
       </div>
       <!-- end nav -->
      </div>
     
      <div id="footer" class="clearfix">
       <jsp:include page="/common/footer.jsp" />
      </div>
     </div>
    </body>
    </html>

    第五部:測試
    期待正確的結果。

    posted @ 2012-03-15 09:00 民工二代 閱讀(1542) | 評論 (0)編輯 收藏

    <beans xmlns=" xmlns:xsi="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
               http://www.springframework.org/schema/context
               http://www.springframework.org/schema/context/spring-context-3.1.xsd        
               http://www.springframework.org/schema/aop
               http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
               http://www.springframework.org/schema/tx
              

     <!-- 攔截配置 -->
     <tx:advice id="txAdvice" transaction-manager="transactionManager">
          <tx:attributes>
                <!--說明事務類別 read-only表示不支持事務,propagation的事務類別與EJB保持一致-->
               <tx:method name="find*" read-only="true" />
               <tx:method name="get*" read-only="true" />
               <tx:method name="load*" read-only="true" />
               <tx:method name="save*" propagation="REQUIRED" />
               <tx:method name="insert*" propagation="REQUIRED" />
               <tx:method name="update*" propagation="REQUIRED" />
               <tx:method name="delete*" propagation="REQUIRED" />
               <tx:method name="*" propagation="REQUIRED" />
          </tx:attributes>
     </tx:advice>

     <!-- 切入點 -->
     <aop:config>
          <!-- Dao層事務 說明你要攔截那些包下面的類的方法-->
          <aop:advisor id="daoTx" advice-ref="txAdvice"  pointcut="execution(* *..dao.impl.*.*(..))" order="0" />
          <!-- service層事務 -->
          <aop:advisor id="serviceTx" advice-ref="txAdvice"  pointcut="execution(* *..service.impl.*.*(..))" order="1" />
     </aop:config>

     <!-- Enable @Transactional support -->
     <tx:annotation-driven />
     
     <!-- 事務管理 -->
     <bean id="transactionManager"  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
          <property name="dataSource" ref="dataSource" />
     </bean>
    。。。下面是具體的dataSource配置
    或下載附件
    http://www.tkk7.com/Files/yiqi/application-resources.rar

    posted @ 2012-03-13 10:56 民工二代 閱讀(303) | 評論 (0)編輯 收藏
    oracle 的 ojdbc無法支持通過maven使用,需要手工將oracle-ojdbc手工加入maven倉庫。

    mvn
    install:install-file
    -DgeneratePom=true
    -DgroupId=com.oracle
    -DartifactId=ojdbc14 
    -Dversion=10.2.0.4.0  版本號
    -Dpackaging=jar 打包方式
    -Dfile=D:\sale_workspace\sale\third_lib\ojdbc-14.jar 本地文件路徑
    posted @ 2012-03-13 09:09 民工二代 閱讀(426) | 評論 (0)編輯 收藏

            昨天參與了項目組的用例需求評審會,發現大家對用戶用例與系統用例存在部分差異,包括架構師與需求分析師對他的理解,最后經過總結明確如下:
            1、通過對業務流程進行梳理,得出業務流程圖,通過“用戶用例”編寫對業務流程圖進行細化;
            2、“用戶用例”的編寫主要目的:用于描述業務現狀,正常情況是怎么樣做的,出現異常了什么做的;不需要考慮“做什么”與“怎么做”,如果該業務的部分操作已經由系統實現,盡可能的規避原有的系統操作,以免被原來的系統框架限制;說簡單一點就是“什么人,在什么情況下,做了什么事,有什么結果”;
            3、“系統用例”的編寫目的:主要是根據“用戶用例”分析得出,要系統要“做什么”,需要考慮有什么業務規則,但是該階段仍然不需要考慮怎么做;“系統用例”需要考慮做事要遵循哪些業務規則,提前告知應用設計師,設計時要考慮哪些問題,如何處理異常流程;

    posted @ 2012-03-08 08:45 民工二代 閱讀(1423) | 評論 (0)編輯 收藏
         摘要: 經過IBM老師的培訓,對性能優化方面進行一個簡單的總結

    系統優化從架構層面,可以考慮從以下方面進行思考:
    一、結構
    1、業務需求方面
    與用戶溝通確認,自己對業務理解是否存在誤區,用戶對業務響應的期望本身就沒有那么高;
    2、產品選型
    應該反思我們在選擇產品方面是否存在缺陷,軟件的設計初衷就與你的希望不一致,還要需要考慮產品是否支持容錯、集群、橫向擴展等
      閱讀全文
    posted @ 2012-02-29 13:29 民工二代 閱讀(1574) | 評論 (0)編輯 收藏
    <!-- 查詢腳本 -->
     <select id="query" parameterType="Province" resultMap="provinceMap">
      <![CDATA[
       select fid,fname,fnumber,fsimpleName,fdescription,fcreateTime,flastUpdateTime,fdirect
       from t_yp_province
       where fname like '%'|| #{name} || '%'
      ]]>
     </select>
    posted @ 2012-02-25 11:24 民工二代 閱讀(368) | 評論 (0)編輯 收藏

    我們在使用 Hibernate scalar 中 hibernate類型 Hibernate.DATE獲取的數據只包含年月日不包含時分秒數據,即只能 2010-01-15 ,
    所以一定要改成 Hibernate.TIMESTAMP ,然后在前臺進行格式化。

    posted @ 2012-02-22 17:34 民工二代 閱讀(363) | 評論 (0)編輯 收藏
    僅列出標題  下一頁
    主站蜘蛛池模板: 亚洲人成电影网站国产精品| 国产h肉在线视频免费观看| 国产成人亚洲毛片| 色一情一乱一伦一视频免费看| 中国性猛交xxxxx免费看| 久久免费精品视频| AV免费网址在线观看| 亚洲精品国产综合久久一线| caoporm超免费公开视频| 久久午夜免费视频| 相泽亚洲一区中文字幕| 亚洲网站在线播放| 香蕉视频在线观看免费| 久久久久亚洲av毛片大| 青青操在线免费观看| 四虎AV永久在线精品免费观看| 亚洲AV无码一区东京热| 美女羞羞视频免费网站| 亚洲五月午夜免费在线视频| 亚洲精品无码av中文字幕| 亚洲国产成人91精品| 一级毛片aa高清免费观看| 好先生在线观看免费播放| 亚洲日韩精品无码专区加勒比| 免费国产高清视频| 亚洲另类无码一区二区三区| 免费人妻无码不卡中文字幕18禁| 人与动性xxxxx免费| 国产无遮挡又黄又爽免费视频| 亚洲天堂福利视频| 在线看片免费人成视久网| 国产中文在线亚洲精品官网| 亚洲三级中文字幕| 95免费观看体验区视频| 亚洲一卡2卡3卡4卡5卡6卡| 国产成人精品免费视| 美女隐私免费视频看| 亚洲AV日韩AV天堂久久| 久久精品私人影院免费看| 亚洲永久精品ww47| 丝瓜app免费下载网址进入ios|