2008年6月13日星期五

八兄弟

一直讨厌看电视剧,大都又臭又长
向来只是吃饭的时候,有时候看电视,也总是遥控器不离手,不停的换台
无意中看了会儿 八兄弟~~觉得还不错
讲的是咱老百姓的事儿
讽刺~幽默~
生活~就是不停的迈一道道的坎啊


讲话了,要当就当棍

2008年6月12日星期四

hibernate的save()疑惑

刚整明白一个,呵呵,笨
hibernate save的时候必须启用事务,也就是必须
beginTransaction();
然后
commit();
要不然不会insert

看孙卫琴.精通Hibernate:Java对象持久化技术详解上讲
调用save方法后,hibernate并不会立即insert,而是保存在缓存里,等清理缓存时再insert
什么时候清理缓存呢?
1、事务commit();
2、find方法(hibernate3被废)
3、显示调用flush();
而为什么不用事务,只是在save();后直接显示调用flush();还是没有insert呢?
参考csdn的一个帖子http://topic.csdn.net/u/20080603/19/d6918606-3a62-43a4-b63d-cd292242bbc6.html
因为数据源的问题
真正的原因是数据源conn默认的提交方式,hibernate不管这件事,大部分开源数据源都是默认false的

我试了hibernate的默认连接池,和tomcat中配的连接池用使用事务都没有insert。
下面这段代码能够insert可以说明一些问题
public static void main(String[] args) throws Exception {
SessionFactory sf=HibernateSessionFactory.getSessionFactory();
Session session=sf.openSession();
System.out.println(session.connection().getAutoCommit());
session.connection().setAutoCommit(true);
User u=new User();
u.setName("aaa");
session.save(u);
}

}
而commit和flush的区别就是commit先flush再提交,而flush没有提交
而在close的时候,孙卫琴.精通Hibernate:Java对象持久化技术详解上讲的是hibernate会清空缓存,一个清理,一个清空,一字之差,呵呵

2008年6月4日星期三

roller blog

因为一直想写个自己的blog,用什么架构呢,遂驱使着在网上搜索有什么开放源码的blog程序,roller4.0,貌似挺有名,但资料不多,蒸腾了两天才把系统跑起来
看在OpenSource的介绍:
              Roller Weblogger这个weblogging 设计得比较精巧,源代码是很好的学习资料。它支持weblogging应有的特性如:评论功能,所见即所得HTML编辑,TrackBack,提供页面模板,RSS syndication,blogroll管理和提供一个XML-RPC 接口。

很好的学习资料,哈哈,那就学习学习吧
不过到现在也没看出个什么门道来
系统用了struts2 不熟,struts1还行
用了JPA,不熟,确切的说刚知道这东西
用了velocity,没用过
....还有很多没见过的名词,狂晕
打了个断点跟了几圈,就晕了
呵呵