仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 403|回复: 11
打印 上一主题 下一主题

[学习教程] 了解下JAVA的hibernate3进修条记(二) 一级缓存

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:18:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大.
接上例:http://www.bianceng.cn/Programming/Java/201101/23637.htm
修正BusinessService.java文件以下所示:
  1. 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. 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();//扫除快取
  2. 10.}11.}12.13.tx.commit();14.session.close();
复制代码
在SQLServer、Oracle等数据库可以使用hibernate的设置文件举行设置,如:
  1. 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的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
地板
发表于 2015-1-30 23:30:47 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
不帅 该用户已被删除
5#
发表于 2015-2-6 16:54:09 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
分手快乐 该用户已被删除
6#
发表于 2015-2-6 17:23:21 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
透明 该用户已被删除
7#
发表于 2015-2-7 01:59:52 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
简单生活 该用户已被删除
8#
发表于 2015-2-7 18:55:38 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
飘飘悠悠 该用户已被删除
9#
发表于 2015-2-10 23:42:48 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
飘灵儿 该用户已被删除
10#
发表于 2015-3-7 08:55:20 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
精灵巫婆 该用户已被删除
11#
发表于 2015-3-8 14:34:37 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
变相怪杰 该用户已被删除
12#
发表于 2015-3-22 18:25:30 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 15:33

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表