JAVA网页编程之怎样在SqlServer与oracel中举行分页的讨...
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。server|sqlserver|分页利用sql,和oracle数据库举行分页能够有以下三种办法!
上面让我们看一看假如我们要在数据库中取第1000条到第1010条的数据这两种办法是怎样完成的.
1.利用一时表的办法.(在体系中次要是间接写Sql语句来做)
a)按所需的排序体例排好序
b)创立一时表
c)从数据库里掏出第0条到第1010条的数据
d)把这些数据放进一时表中
e)把一时表再按与a)相反的排序体例排好序
f)然后只需把一时表中的前10条显时出来
g)烧毁一时表
2.利用object的办法
a)按所需的排序体例排好序
b)从数据库里掏出第0条到第1010条的数据
c)倒着从这1010条数据中取10条放进一个object中
d)把这个object里的纪录完整颠倒一下
e)把object里的数据显现出来
明显第二种办法优于第一种办法它削减了体系创立,烧毁一时表所需泯灭的资本,可是它们都有一个配合的缺点.那就是它们都要从数据库里掏出第0条到第1010条的数据如许就形成了查询出的纪录数很少,但收集传输数据量很年夜!
因而对照好的分页做法应当是:
每次翻页的时分只从数据库里检索页面巨细的块区的数据。如许固然每次翻页都必要查询数据库,但查询出的纪录数很少,收集传输数据量不年夜,假如利用毗连池更能够略过最耗时的创建数据库毗连历程。而在数据库端有各类成熟的优化手艺用于进步查询速率,比在使用服务器层做缓存无效多了。
关于SqlServer数据库如要到得第1000-1010笔记录:
Selecttop10*from(
Selecttop10*from(
Selecttop1010*fromdocdetailorderbylastmodidateasc,Idasc
)temptbl1orderbylastmodidatedesc,Iddesc
)temptbl2orderbylastmodidateasc,Idasc
关于oracle数据库如要到得第1000-1010笔记录因为oracle中的rownum是在查询以后排序之前赋值的.以是其响应的写法应为:
select*from(
selectmy_table.*,rownumastemptbl_rownumfrom(
Select*fromdocdetailorderbylastmodidateasc,Idasc
)temptblwhererownum<1010
)wheretemptbl_rownum>=1000
当以上的Sql语句实行完成今后,收集传输数据量就从之前的1010条削减到10条
经由过程以上分页体例的改动,对我们体系的功能有很年夜的提拔
我有个客户利用的是oracel数据库个中文档数量为12万条,当我们对这张表时行搜刮的时分利用第一种办法举行分页时,页面显现的工夫约为10秒摆布,而利用第三种办法而如今页面显现工夫只必要2-3秒摆布.
固然,大概另有更好的分页办法,总以为跟着数据库里的数据的不休增添,体系运转的速率将会变慢,我在这里贴出这篇文章,只是想和人人会商一下,另有没有更好的办法,但愿人人不惜复兴!一同会商!
:D(完)
轮性能微软曾做过一个例子,就是同一个项目用java和.net来作,结果开发周期,.net是java的一半,性能java是.net的十分之一,代码量java是.net的三倍。呵呵,这说明了什么,.net的全方位比java好。但是有的人说.net不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net,只是推出了跨语言的.net, 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 是一种为 Internet发展的计算机语言 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
页:
[1]