第二个灵魂 发表于 2015-1-18 11:18:22

了解下JAVA的hibernate3进修条记(二) 一级缓存

java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大.
接上例:http://www.bianceng.cn/Programming/Java/201101/23637.htm
修正BusinessService.java文件以下所示:

1.packagecom.hb3.pack_01;2.3.importorg.hibernate.Session;4.importorg.hibernate.SessionFactory;5.importorg.hibernate.cfg.Configuration;6.7.importcom.hb3.pack_01.model.User;8.9.publicclassBusinessService{10.11.publicstaticvoidmain(String[]args){12.13.Configurationconfig=newConfiguration().configure();14.SessionFactorysessionFactory=config.buildSessionFactory();15.Sessionsession=sessionFactory.openSession();16.17.Useruser1=(User)session.load(User.class,newInteger(1));18.Useruser2=(User)session.load(User.class,newInteger(1));19.System.out.println(user1==user2);20.21.user1=(User)session.load(User.class,newInteger(1));22.session.evict(user1);23.user2=(User)session.load(User.class,newInteger(1));24.System.out.println(user1==user2);25.26.user1=(User)session.load(User.class,newInteger(1));27.session.clear();28.user2=(User)session.load(User.class,newInteger(1));29.System.out.println(user1==user2);30.31.Sessionsession1=sessionFactory.openSession();32.user1=(User)session1.load(User.class,newInteger(1));33.session1.close();34.Sessionsession2=sessionFactory.openSession();35.user2=(User)session2.load(User.class,newInteger(1));36.session2.close();37.System.out.println(user1==user2);38.39.session.close();40.sessionFactory.close();41.}42.}顺次打印出的了局为
true
false
false
false
可见:
利用session.evict大概session.clear把某个物体从缓存中移除,大概间接封闭Session,城市使缓存生效,大概说开释缓存占用的资本空间。
值得一提的是:在载进大批数据时,应当实时手动扫除一级缓存以开释资本。
比方:

1.Sessionsession=sessionFactory.openSession();2.Transactiontx=session.beginTransaction();3.4.while(....){//大批d进物件r的圈表示5.....6.session.save(someObject);7.if(count%100==0){//每100PY料8.session.flush();//送进Y料9.session.clear();//扫除快取
10.}11.}12.13.tx.commit();14.session.close();在SQLServer、Oracle等数据库可以使用hibernate的设置文件举行设置,如:

1.....2.<hibernate-configuration>3.<session-factory>4.....5.<propertyname="hibernate.jdbc.batch_size">100</property>6.....7.</session-factory>8.<hibernate-configuration>注重:在MySQL中不撑持这类设置体例。

Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Oracle收购Sun后Java前途未卜。

柔情似水 发表于 2015-1-20 19:53:17

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

小女巫 发表于 2015-1-22 06:56:06

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

仓酷云 发表于 2015-1-30 23:30:47

Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

不帅 发表于 2015-2-6 16:54:09

其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。

分手快乐 发表于 2015-2-6 17:23:21

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

透明 发表于 2015-2-7 01:59:52

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

简单生活 发表于 2015-2-7 18:55:38

至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。

飘飘悠悠 发表于 2015-2-10 23:42:48

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

飘灵儿 发表于 2015-3-7 08:55:20

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

精灵巫婆 发表于 2015-3-8 14:34:37

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

变相怪杰 发表于 2015-3-22 18:25:30

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
页: [1]
查看完整版本: 了解下JAVA的hibernate3进修条记(二) 一级缓存