package com.soft.mcz;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;public class Wel extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){
Connection con=null;
Statement st=null;
ResultSet rs=null;
PreparedStatement pst=null;
try{

Class.forName("com.mysql.jdbc.Driver").newInstance();
con =DriverManager.getConnection("jdbc:mysql://localhost/database1","root","jacob");
st=con.createStatement();



res.setContentType("text/html;charset=gb2312");
PrintWriter pw = res.getWriter();
String nn=req.getParameter("username");
HttpSession hs=req.getSession(true);
;

String name=(String)(hs.getAttribute("name"));
pw.println(name+"欢迎您登录本系统!!!</br>");
pw.println("<image src=images/im.png>");

int pageSize=3 ;
int pageCount=0;
int pageNow=1;
int countSize=0;
String sql2="select count(*) from up";
rs=st.executeQuery(sql2);
if(rs.next()){
countSize=rs.getInt(1);
}
if(countSize%pageSize==0){
pageCount=countSize/pageSize;

}
else{
pageCount=countSize/pageSize+1;
}
pw.println(countSize);

pw.println("<table border=3>");
pw.println("<tr>");
pw.println("<th>姓名</th>");
pw.println("<th>密码</th>");
pw.println("</tr>");
// String sql="select * from up order by username asc LIMIT ?,?";
//(pageNow-1)*pageSize+","+pageSize;

pst=con.prepareStatement("select * from up order by username asc LIMIT ?,?");
pst.setInt(1,(pageNow-1)*pageSize);
            pst.setInt(2,pageSize);            
rs=pst.executeQuery();
int i= rs.getRow();
pw.println(i);

if(rs.next()){

while(rs.next()){
// pw.println("测试点2");
pw.println("<tr>");
pw.println("<td>"+rs.getString(1)+"</td>");
pw.println("<td>"+rs.getString(2)+"</td>");
pw.println("</tr>");

}

}else{
pw.println("buchenggong ");
}
pw.println("</table>");


}catch(Exception e){
e.getStackTrace();
}
finally{
try{
rs.close();
st.close();
con.close();
}
catch(Exception ee){

}

}

}
public void doPost(HttpServletRequest req,HttpServletResponse res){

this.doGet(req,res);
}

}本来我的意想是每页显示3条记录,但是怎么调试都只有两条
用的数据库是mysql
开发工具是JCreateor
谢谢各位大侠的请教姓名   密码 
test2 test2 
test3 test3 

解决方案 »

  1.   

    你把代码当中那个if(rs.next)去掉,就是while循环上边那行
      

  2.   

     楼上正解。改if(rs.hasNext()) 
      

  3.   


    ResultSet没有hasNext()这个方法,行不通直接去掉if(rs.next)测试通过
      

  4.   

    在查条数  conn方法有点问题
      

  5.   

    //转到首页
    public void first() {
    currentPage = 1;
    startRow = 0;
    }
    //转到上一页
    public void previous() {
    if (currentPage == 1) {
    currentPage = 1;
    startRow = (currentPage - 1) * pageSize;
    }else{
    currentPage--;
    startRow = (currentPage - 1) * pageSize;}
    }
    //转到下一页
    public void next() {
    if (currentPage < totalPages) {
    currentPage++;
    startRow = (currentPage - 1) * pageSize;
    }else{
    currentPage = currentPage + 1;
    currentPage = currentPage - 1;
    startRow = (currentPage - 1) * pageSize;
    }}
    //转到尾页
    public void last() {
    currentPage = totalPages;
    startRow = (currentPage - 1) * pageSize;
    }
    //设置当前页
    public void refresh(int _currentPage) {
    currentPage = _currentPage;
    if (currentPage > totalPages) {
    last();
    }
    }
    --------------dao里的两个查所有值的方法和分页查询方法-------------------------
    public List findAll() {
    log.debug("finding all Demo instances");
    try {
    String queryString = "from MyDemo";
    List list = getHibernateTemplate().find(queryString);
    return list;
    } catch (RuntimeException re) {
    log.error("find all failed", re);
    throw re;
    }
    }
    public List findByPage(int startRow,int pageSize){
    log.debug("find alldemo");
    Session session = this.getSession() ;
    try {
    Query query = session.createQuery("from MyDemo");  
    query.setFirstResult(startRow);
    query.setMaxResults(pageSize);
    return query.list();
    } catch (RuntimeException e) {  
    log.error("findall failed",e);
    throw e;
    }
    }
    --------------------------控制器里的方法-------------------------------
    public String findall(HttpServletRequest request,
    HttpServletResponse response,ModelMap model){List list = demo1Service.getall();
    int totalRows = list.size();
    PageBean pageBean = PagerHelper.getPager(request,totalRows);
    List mylist = demo1Service.findByPage(pageBean.getStartRow(),pageBean.getPageSize()); request.setAttribute("demolist", mylist);
    request.setAttribute("pageBean", pageBean);
    return "showlist";
    }
    看哈我这个  
      

  6.   

    rs.next()用指针的方式理解就是说
    你执行过这个判断,这个指针就向下走了一步
    比如说,原来指针是指向0,你做出这个判断,执行了rs.next(),现在这个对象的指针就指向1了,所以你第一个数据取不出来