因胸联盟 发表于 2015-1-18 11:51:03

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,

分手快乐 发表于 2015-1-21 16:18:38

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

兰色精灵 发表于 2015-1-30 21:04:35

是一种为 Internet发展的计算机语言

莫相离 发表于 2015-2-5 11:42:07

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

蒙在股里 发表于 2015-2-5 22:18:35

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

爱飞 发表于 2015-2-6 16:37:35

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

精灵巫婆 发表于 2015-2-8 14:41:02

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

谁可相欹 发表于 2015-2-10 09:54:09

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

变相怪杰 发表于 2015-2-20 04:44:21

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

不帅 发表于 2015-3-1 01:56:37

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

活着的死人 发表于 2015-3-10 12:05:55

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

老尸 发表于 2015-3-11 04:46:32

设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧

小妖女 发表于 2015-3-11 19:38:58

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

若天明 发表于 2015-3-15 10:39:33

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

再现理想 发表于 2015-3-22 00:10:14

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

海妖 发表于 2015-3-24 21:26:23

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

透明 发表于 2015-3-27 03:05:54

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

只想知道 发表于 2015-4-1 05:25:28

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

小魔女 发表于 2015-4-14 21:01:37

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

第二个灵魂 发表于 2015-4-20 05:15:58

当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
页: [1]
查看完整版本: JAVA网页编程之怎样在SqlServer与oracel中举行分页的讨...