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

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

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

    隨筆 - 16  文章 - 0  trackbacks - 0
    <2012年4月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    常用鏈接

    留言簿

    隨筆檔案

    友情鏈接

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    第一步、配置實體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)編輯 收藏
    主站蜘蛛池模板: 久久久久久久尹人综合网亚洲| 三年片在线观看免费大全| 亚洲电影日韩精品 | 麻豆亚洲AV成人无码久久精品 | 亚洲精品美女久久777777| 99久久免费国产特黄| 亚洲精品和日本精品| 成人无码精品1区2区3区免费看| 久久久久亚洲AV成人网| 成人一区二区免费视频| 亚洲高清在线观看| 亚洲一级免费视频| 中文字幕在线观看亚洲日韩| 啦啦啦www免费视频| 看免费毛片天天看| 亚洲乱码精品久久久久..| 亚洲视频在线观看免费| 亚洲中文字幕在线无码一区二区| 毛片A级毛片免费播放| 国产亚洲人成在线播放| 亚洲中文字幕无码久久综合网| 久久福利青草精品资源站免费| 亚洲嫩模在线观看| 暖暖在线日本免费中文| 亚州**色毛片免费观看| 日韩精品一区二区亚洲AV观看| 久久综合AV免费观看| 黄色毛片免费在线观看| 亚洲AV无码久久精品成人| 99无码人妻一区二区三区免费| 亚洲av日韩综合一区久热| 亚洲色婷婷综合久久| 91精品国产免费久久国语麻豆| 亚洲综合无码无在线观看| 亚洲免费视频一区二区三区| 无码人妻久久一区二区三区免费| 亚洲综合中文字幕无线码| 久久亚洲欧洲国产综合| 日韩在线免费视频| 精品97国产免费人成视频| 男人天堂2018亚洲男人天堂|