随笔 - 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 民工二代 阅读(308) | 评论 (0)编辑 收藏
     摘要: 在线创建Oracle分区表
第一步,检查源表是否可以在线重定义;
第二步、创建一张分区表做为中间表;
第三步、拷备源表中的记录;
第四步、同步更新数据;
第五步、转换完成  阅读全文
posted @ 2012-06-18 09:23 民工二代 阅读(344) | 评论 (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 民工二代 阅读(515) | 评论 (0)编辑 收藏