问题描述
我做的是条件查询,然后再分页显示查询结果。总是报错。我却一直找不到问题所在。貌似问题出现在presentPageResult这个函数。可是我却不知道怎么改。我用的是myeclipse加mysql数据库。麻烦高手帮我一下,不吝赐教,感激不尽packagepack;importjava.sql.*;importcom.sun.rowset.*;publicclasslink1{intpageSize=10;//每页显示的记录数intpageAllCount=0;//分页后的总页数intshowPage=1;//当前显示页StringBufferpresentPageResult;//显示当前页内容CachedRowSetImplrowSet;//用于存储ResultSet对象floatpriceMin,priceMax;String字段[]=newString[100];int字段个数=0;publiclink1(){presentPageResult=newStringBuffer();try{Class.forName("com.mysql.jdbc.Driver");}catch(Exceptione){}}publicvoidsetPriceMax(floatn){priceMax=n;presentPageResult=newStringBuffer();}publicfloatgetPriceMax(){returnpriceMax;}publicvoidsetPriceMin(floatn){priceMin=n;presentPageResult=newStringBuffer();}publicfloatgetPriceMin(){returnpriceMin;}publicvoidsetPageSize(intsize){pageSize=size;字段个数=0;Stringuri="jdbc:mysql://localhost/f";Stringuser="root";//用户try{Connectioncon=DriverManager.getConnection(uri,user,"");DatabaseMetaDatametadata=con.getMetaData();ResultSetrs1=metadata.getColumns(null,null,"book_shopping",null);intk=0;while(rs1.next()){字段个数++;字段[k]=rs1.getString(4);//获取字段的名字k++;}Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);ResultSetrs=sql.executeQuery("select*frombook_shoppingwhereprice<="+priceMax+"AND"+"price>="+priceMin);rowSet=newCachedRowSetImpl();//创建行集对象rowSet.populate(rs);con.close();//关闭连接rowSet.last();intm=rowSet.getRow();//总行数intn=pageSize;pageAllCount=((m%n)==0)?(m/n):(m/n+1);}catch(Exceptionexp){}}publicintgetPageSize(){returnpageSize;}publicintgetPageAllCount(){returnpageAllCount;}publicvoidsetShowPage(intn){showPage=n;}publicintgetShowPage(){returnshowPage;}publicStringBuffergetPresentPageResult(){if(showPage>pageAllCount)showPage=1;if(showPage<=0)showPage=pageAllCount;presentPageResult=show(showPage);<inputtype="submit"value="提交"></form>价钱在<jsp:getPropertyname="look"property="priceMin"/>至<jsp:getPropertyname="look"property="priceMax"/>之间的记录<br>共有<jsp:getPropertyname="look"property="pageAllCount"/>页.<br>每页最多显示<jsp:getPropertyname="look"property="pageSize"/>条记录。<jsp:getPropertyname="look"property="presentPageResult"/><BR>当前显示第<jsp:getPropertyname="look"property="showPage"/>页,<BR>单击“前一页”或“下一页”按纽查看记录<Table><tr><td><FORMaction=""><Inputtype=hiddenname="showPage"value="<%=look.getShowPage()-1%>"><Inputtype=submitname="g"value="前一页"></FORM></td><td><FORMaction=""><Inputtype=hiddenname="showPage"value="<%=look.getShowPage()+1%>"><Inputtype=submitname="g"value="后一页"></Form></td><td><FORMaction="">输入页码:<Inputtype=textname="showPage"size=5><Inputtype=submitname="g"value="提交"></FORM></td></tr></Table></BODY></HTML>
解决方案
解决方案二:
麻烦各位高手帮一下忙。我总是运行不出来啊。可以我找了好多次都找不出问题所在。希望高手帮我一下,感激不尽
解决方案三:
不要沉啊。烦恼了好几天啦。请求帮忙啊
解决方案四:
mysql不是用limit这个来处理分页么
解决方案五:
引用3楼fable0115的回复:
mysql不是用limit这个来处理分页么
是么?可是应该这个也可以吧。我是看书的。
解决方案六:
自己在来顶一顶,希望能人可以帮帮我
解决方案七:
该回复于2011-03-30 11:12:24被版主删除
解决方案八:
我原来做过,如果没有解决联系我,我发给你我写的包装类。有时间帮你看看。qq:39339570
解决方案九:
在来顶顶。求高手
解决方案十:
用limit的飘过~~~关键是limit太好用了。
解决方案十一:
limit强大哈
解决方案十二:
引用10楼wuxiaoke2009的回复:
limit强大哈
关键是不知道怎么用啊,没学过啊
解决方案十三:
看得有点头大了,呵呵,帮顶一下啊啊!
解决方案十四:
引用12楼jaygo311的回复:
看得有点头大了,呵呵,帮顶一下啊啊!
呵呵。谢谢了
解决方案十五:
顶起来,我还没解决问题啊。
解决方案:
mysql>SELECT*FROMtableLIMIT5,10;//检索记录行6-15//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为-1:mysql>SELECT*FROMtableLIMIT95,-1;//检索记录行96-last.//如果只给定一个参数,它表示返回最大的记录行数目:mysql>SELECT*FROMtableLIMIT5;//检索前5个记录行
解决方案:
引用15楼zyz1985的回复:
mysql>SELECT*FROMtableLIMIT5,10;//检索记录行6-15//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为-1:mysql>SELECT*FROMtableLIMIT95,-1;//检索记录行96-last.//如果只给定一个参数,它表示返回最大的记录行数目:mysql>SEL……
还不是不很懂。我用的是navicatformysql
解决方案:
不错,学习了
解决方案:
Mysql的分页语句,使用limit子句:FROMtablelimitfromIndex,length;fromIndex从0开始,包含fromIndex指向的记录,length要查询的记录的数量.
解决方案:
引用18楼guiliangdong的回复:
Mysql的分页语句,使用limit子句:FROMtablelimitfromIndex,length;fromIndex从0开始,包含fromIndex指向的记录,length要查询的记录的数量.
学习了
解决方案:
privateintpage=1;//显示的页码privateintpageSize=3;//每页显示的订单数privateintpageCount=0;//页面总数privatelongrecordCount=0;//查询的记录总数ResultSetrs,rs1;StringsqlStr="";publicintgetPage(){//显示的页码returnpage;}publicvoidsetPage(intnewpage){System.out.print(newpage);page=newpage;}publicintgetPageSize(){//每页显示的图书数returnpageSize;}publicvoidsetPageSize(intnewpsize){pageSize=newpsize;}publicintgetPageCount(){//页面总数returnpageCount;}publicvoidsetPageCount(intnewpcount){pageCount=newpcount;}publiclonggetRecordCount(){returnrecordCount;}publicvoidsetRecordCount(longnewrcount){recordCount=newrcount;}publicStringgetGbk(Stringstr){try{returnnewString(str.getBytes("gbk"));}catch(Exceptione){returnstr;}}publicbooleangetNews(HttpServletRequeststr)throwsException{javax.servlet.http.HttpServletRequestrequest=str;HttpSessionsession=request.getSession();Stringid=request.getParameter("t_id");session.setAttribute("t_id",id);intt_id=Integer.parseInt(id);sqlStr="selectcount(*)fromnews";//取出记录数intrscount=pageSize;try{dbPoold1=newdbPool();rs1=d1.executeQuery(sqlStr);if(rs1.next())recordCount=rs1.getInt(1);rs1.close();}catch(SQLExceptione){returnfalse;}//设定有多少pageCountif(recordCount<1)pageCount=0;elsepageCount=(int)(recordCount-1)/pageSize+1;//检查查看的页面数是否在范围内if(page<1)page=1;elseif(page>pageCount)page=pageCount;rscount=(int)recordCount%pageSize;//最后一页记录数if(page==1){sqlStr="select*fromnewswheremenuid="+t_id+"orderbyiddesclimit"+pageSize;}else{Stringid1=(String)session.getAttribute("t_id");intidi=Integer.parseInt(id1);sqlStr="select*fromnewswheremenuid="+idi+"orderbyiddesclimit"+(pageSize*page-pageSize)+","+pageSize;}try{dbPooldb=newdbPool();//System.out.println("==========="+sqlStr);rs=db.executeQuery(sqlStr);Listlist=newArrayList();while(rs.next()){Newsn=newNews();n.setId(rs.getInt("id"));n.setName(rs.getString("name"));n.setTitle(rs.getString("title"));n.setWriter(rs.getString("writer"));n.setReporter(rs.getString("reporter"));n.setFromer(rs.getString("fromer"));n.setAddtime(rs.getString("addtime"));n.setFile(rs.getString("file"));n.setEditer(rs.getString("editer"));list.add(n);}session.setAttribute("adminNews",list);}catch(Exceptione){e.printStackTrace();}returntrue;}
解决方案:
引用20楼chaoloveyou的回复:
privateintpage=1;//显示的页码privateintpageSize=3;//每页显示的订单数privateintpageCount=0;//页面总数privatelongrecordCount=0;//查询的记录总数ResultSetrs,rs1;StringsqlStr="";publicint……
有点难理解