仓酷云

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

[学习教程] JAVA网页设计Hibernate下数据批量处置办理计划

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-18 11:38:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
再说说缺点:首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。办理|数据良多人都对Java在批量数据的处置方面是不是是其符合的场合持有嫌疑的动机,由此延长,那末就会以为ORM大概也不是出格合适数据的批量处置。实在,我想假如我们使用妥当的话,完整能够打消ORM批量处置功能成绩这方面的挂念。上面以Hibernate为例来做为申明,假设我们真的不能不在Java中利用Hibernate来对数据举行批量处置的话。向数据库拔出100000条数据,用Hibernate大概像如许:

Sessionsession=sessionFactory.openSession();
Transactiontx=session.beginTransaction();
for(inti=0;i<100000;i++){
Customercustomer=newCustomer(.....);
session.save(customer);}
tx.commit();
session.close();

  也许在运转到第50000条的时分,就会呈现内存溢出而失利。这是Hibernate把比来拔出的Customer都以session-levelcache在内存做缓存,我们不要健忘Hiberante并没无限制first-levelcache的缓存巨细:

  #耐久对象实例被办理在事件停止时,此时Hibernate与数据库同步任何已产生变化的被办理的的对象。

  #Session完成了异步write-behind,它同意Hibernate显式地写操纵的批处置。这里,我给出Hibernate怎样完成批量拔出的办法:
起首,我们设置一个公道的JDBC批处置巨细,hibernate.jdbc.batch_size20。然后在必定距离对Session举行flush()和clear()。

Sessionsession=sessionFactory.openSession();
Transactiontx=session.beginTransaction();
for(inti=0;i<100000;i++){
Customercustomer=newCustomer(.....);
session.save(customer);
if(i%20==0){
//flush拔出数据和开释内存:
session.flush();session.clear();}
}
tx.commit();
session.close();

  那末,关于如何删除和更新数据呢?那好,在Hibernate2.1.6大概更后版本,scroll()这个办法将是最好的路子:

Sessionsession=sessionFactory.openSession();
Transactiontx=session.beginTransaction();
ScrollableResultscustomers=session.getNamedQuery("GetCustomers")
.scroll(ScrollMode.FORWARD_ONLY);
intcount=0;
while(customers.next()){
Customercustomer=(Customer)customers.get(0);
customer.updateStuff(...);
if(++count%20==0){
//flush更新数据和开释内存:
session.flush();session.clear();}}
tx.commit();session.close();

  这类做法其实不坚苦,也不算不文雅。请注重,假如Customer启用了second-levelcaching,我们仍旧会有一些内存办理的成绩。缘故原由就是关于用户的每次拔出和更新,Hibernate在事件处置停止后不能不公告second-levelcache。因而,我们在批处置情形下将要禁用用户利用缓存。


从一个编程语言的普及程度来将,一个好的IDE是至关中要的,而现在的java的IDE虽然已经很好了,但是和.net比起来还是稍微差一些的,这是个客观事实。java要想普及的更好。DE是必须加以改进的。
第二个灵魂 该用户已被删除
沙发
发表于 2015-1-21 11:57:38 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
活着的死人 该用户已被删除
板凳
发表于 2015-1-25 21:25:41 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
兰色精灵 该用户已被删除
地板
发表于 2015-2-4 02:04:16 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
admin 该用户已被删除
5#
发表于 2015-2-6 15:05:32 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
冷月葬花魂 该用户已被删除
6#
发表于 2015-2-8 03:39:34 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
小妖女 该用户已被删除
7#
发表于 2015-2-24 03:37:54 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
再见西城 该用户已被删除
8#
发表于 2015-2-26 11:13:46 | 只看该作者
是一种使用者不需花费很多时间学习的语言
只想知道 该用户已被删除
9#
发表于 2015-3-3 20:24:03 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
金色的骷髅 该用户已被删除
10#
发表于 2015-3-7 04:14:37 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
灵魂腐蚀 该用户已被删除
11#
发表于 2015-3-11 01:39:59 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
老尸 该用户已被删除
12#
发表于 2015-3-17 18:09:24 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
蒙在股里 该用户已被删除
13#
发表于 2015-3-24 17:10:27 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
小魔女 该用户已被删除
14#
发表于 2015-4-1 00:10:53 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
深爱那片海 该用户已被删除
15#
发表于 2015-4-6 07:50:49 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
谁可相欹 该用户已被删除
16#
发表于 2015-4-7 15:37:05 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
飘灵儿 该用户已被删除
17#
发表于 2015-4-16 14:11:53 | 只看该作者
是一种为 Internet发展的计算机语言
山那边是海 该用户已被删除
18#
发表于 2015-4-19 20:53:00 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
若相依 该用户已被删除
19#
发表于 2015-7-10 10:26:12 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
变相怪杰 该用户已被删除
20#
发表于 2015-7-13 20:16:13 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-22 23:10

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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