﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-ThinkTalk-随笔分类-MySQL</title><link>http://www.blogjava.net/ThinkingTalking/category/22251.html</link><description>Do what I can do!</description><language>zh-cn</language><lastBuildDate>Wed, 09 May 2007 07:58:49 GMT</lastBuildDate><pubDate>Wed, 09 May 2007 07:58:49 GMT</pubDate><ttl>60</ttl><item><title>数据操作的简单易错问题</title><link>http://www.blogjava.net/ThinkingTalking/archive/2007/05/08/115965.html</link><dc:creator>ThinkingTalking</dc:creator><author>ThinkingTalking</author><pubDate>Tue, 08 May 2007 07:37:00 GMT</pubDate><guid>http://www.blogjava.net/ThinkingTalking/archive/2007/05/08/115965.html</guid><wfw:comment>http://www.blogjava.net/ThinkingTalking/comments/115965.html</wfw:comment><comments>http://www.blogjava.net/ThinkingTalking/archive/2007/05/08/115965.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/ThinkingTalking/comments/commentRss/115965.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/ThinkingTalking/services/trackbacks/115965.html</trackback:ping><description><![CDATA[最近做了一个中小企业网络平台，在操纵结果集时，在abstract() 和 next()&nbsp; 的使用上产生了冲突，以致于总是漏掉最开始的一条数据。因为其中内嵌了分页程序，int pointer = (sp.getShowPage() - 1) * sp.getPageSize() + 1;<br>abstract(pointer)后指针指向第一条数据(开始时指针指向第一条的前面)，然后我用while(rs.next())获取并保存其中的sp.getPageSize() 个数据(实际上我只获取了sp.getPageSize() -1个),因为在调用rs.next()后，指针向下移动了一行，即此时指向第二条数据了。<br>这种指针的移动在所有数据库中都是一样的。因为JDBC 驱动需要提前获得一行来判断当前行是否是最后一行。<br>所以我换了一种新结构:<br>rs.absolute(pointer);<br>for (int i = 0; i &lt; sp.getPageSize(); i++) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //获取并保存信息<br>&nbsp;&nbsp;&nbsp;&nbsp;if (!rs.next())&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; next()在这即起到了移动指针，有起到了判断剩余的数据不足sp.getPageSize()的作用,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有点类似于直接插入排序中的变量j<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;&nbsp;}<br>这样便不会漏掉数据,而且提高了程序执行效率!
<img src ="http://www.blogjava.net/ThinkingTalking/aggbug/115965.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/ThinkingTalking/" target="_blank">ThinkingTalking</a> 2007-05-08 15:37 <a href="http://www.blogjava.net/ThinkingTalking/archive/2007/05/08/115965.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>