melodydream的个人博客分享 http://blog.sciencenet.cn/u/melodydream

博文

对上一篇javaBean的改进

已有 4111 次阅读 2010-5-26 17:09 |个人分类:未分类|系统分类:教学心得

      把上一篇servlet中有关数据的处理分离出来,单独放在一个类里,显得简单明了一些。新建一doBossBean.java

  doBossbean.java

  package flower.grass;

import java.sql.*;
import java.util.Vector;

import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class doBossBean {
    private Connection conn = null;
    private ResultSet rs = null; 
    private Statement sql=null; 
    Vector v=new Vector();
    public doBossBean() {
        try
                {
                    Class.forName("oracle.jdbc.driver.OracleDriver");
                    conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:jh","jh","jh");
                }
                catch (SQLException ex)
                {
                    System.out.println(ex.getMessage() + "路径错误");
                }
                catch (ClassNotFoundException ex)
                {
                    System.out.println(ex.getMessage() + "驱动错误");
                }    
    }  
     
    
    public int getTotalRows() {
           int count = 0;
           try {
               sql = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
               rs = sql.executeQuery("select * from student");
               while (rs.next()) {
                   count++;
               }
           } catch (SQLException ex) {
            ex.printStackTrace();
             System.out.print("getTotalRows errors"+ex.getMessage());
           } 
           return count;
       }

   public Vector list_room( int showPage,ShowByPage databaseBean,int pageSize ) throws SQLException{
      
        showPage=databaseBean.getShowPage(); // 请求的页号
        pageSize=databaseBean.getPageSize();// 每页的行数
        // 统计总行数
        int rowCount = getTotalRows();  //,返回总行数
        databaseBean.setRowCount(rowCount);
        int pageAllCount=rowCount%pageSize==0?rowCount/pageSize:rowCount/pageSize + 1;
        databaseBean.setPageAllCount(pageAllCount);
        try{
            sql=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
           
        //取得要显示的结果集,并存放在vector中     
        ResultSet rs=sql.executeQuery("select * from (select rownum r,no ,name,math,chinese,english from " +
   "(select no,name,math,chinese,english from student))" +
   " where r between " +((showPage-1) * pageSize + 1)+ " and " +(showPage* pageSize));
        System.out.println("showPage="+showPage);
       


        int i=0;
        while(rs.next()){       
           if(i<pageSize){
  
                Object[]   obj=new   Object[5];
             obj[0]=rs.getString("no");     
             obj[1]=rs.getString("name");
             obj[2]=rs.getFloat("math");
             obj[3]=rs.getFloat("chinese");
             obj[4]=rs.getFloat("english");
   
          for(int k=0;k<5;k++){
              v.add(obj[k]);
     
             }
          }
             i++;
           } 
        }
        catch(Exception e)
        {e.printStackTrace();}
        return v;
       }        
               
    }  

 修改一下HandleDatabase

   package rain.snow;
   import flower.grass.ShowByPage;
   import flower.grass.doBossBean;


   import java.io.IOException;
   import java.sql.*;
   import java.util.Vector;

   import javax.servlet.*;
   import javax.servlet.http.*;

   public class HandleDatabase extends HttpServlet{
   /**
  *
  */
 private static final long serialVersionUID = 1L;

 int RowCount=0;
 ResultSet rs=null;
 Connection con;
 ShowByPage databaseBean=null;
 String databaseName;
 String tableName;
 Vector v=new Vector();
 
 
   public void init(ServletConfig config)throws ServletException{
    super.init(config);
    try{Class.forName("oracle.jdbc.driver.OracleDriver");}
    catch(Exception e){}
   }
  
   public void doPost(HttpServletRequest request,HttpServletResponse response)
   throws ServletException,IOException{
   
   
    ShowByPage databaseBean=null;
    HttpSession session=request.getSession(true);
    try{ databaseBean=(ShowByPage)session.getAttribute("database1");
     if(databaseBean==null){
      databaseBean=new ShowByPage();
      session.setAttribute("database1", databaseBean);
     }
    }
    catch(Exception exp){
     databaseBean=new ShowByPage();
     session.setAttribute("database1", databaseBean);
    }
    //String databaseName=request.getParameter("databaseName");
    //String tableName=request.getParameter("tableName");
   
  
       String databaseName=(String)session.getAttribute("databaseName");
    if(databaseName==null){
     session.setAttribute("databaseName", "jh");
    }
  
    String tableName=(String)session.getAttribute("tableName");
    if(tableName==null){
     session.setAttribute("tableName", "student");
    }
    String ps=request.getParameter("pageSize");
    //String ps=(String)session.getAttribute("pageSize");
    //if(ps==null){
     //session.setAttribute("ps", "2");
    //} 
   
    if(ps!=null){
    try{
     int mm=Integer.parseInt(ps);
     databaseBean.setPageSize(mm);
    }
    catch(NumberFormatException exp){databaseBean.setPageSize(1);}
    }
   
    boolean boo=databaseName!=null&&tableName!=null&&databaseName.length()>0&&tableName.length()>0;

    //System.out.println("databaseName="+databaseName+"tableName="+tableName+"databaseName.length()="+databaseName.length()+"tableName.length()="+tableName.length());
    System.out.println("boo="+boo);
    if(boo){
  
      //判断为哪一页
         int showPage=databaseBean.getShowPage();
         int pageSize=databaseBean.getPageSize();
         //System.out.println("rowCount="+databaseBean.getRowCount());
       
      String whichPage=request.getParameter("whichPage");
     
            if(whichPage==null||whichPage.length()==0){
                showPage=1;
                System.out.println("showPage="+showPage); 
                databaseBean.setShowPage(showPage);
             }
            else if(whichPage.equals("nextPage")){
             showPage++;
                if(showPage>databaseBean.getPageAllCount())
                showPage=1;
                   System.out.println("showPage="+showPage);
                   databaseBean.setShowPage(showPage);
                    }
                    else if(whichPage.equals("previousPage")){
                   showPage--;
                    if(showPage<=0)
                    showPage=databaseBean.getPageAllCount();
                       System.out.println("showPage="+showPage);
                       databaseBean.setShowPage(showPage);
      
    }   
             doBossBean db=new doBossBean();
             Vector result=null;
     try {
      result = db.list_room(showPage,databaseBean,pageSize);
     } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
                 request.getSession().setAttribute("list_room",(Vector)result); 
                 //request.setAttribute("showPage",showPage);
                 request.setAttribute("pageAllCount",databaseBean.getPageAllCount());
                 //int pageAllCount=databaseBean.getPageAllCount();//得到总页数              
                 //request.setAttribute("pageAllCount",pageAllCount);   
                 
                        
             
          RequestDispatcher dispatcher=request.getRequestDispatcher("/showRecord.jsp");
          dispatcher.forward(request,response);
        }
    }
  
 
    public void doGet(HttpServletRequest request,HttpServletResponse response)
    throws ServletException,IOException{
     doPost(request,response);
    }
   }


    



https://blog.sciencenet.cn/blog-437884-328943.html

上一篇:jsp servlet javaBean实现oracle数据库分页显示
下一篇:发发牢骚
收藏 IP: .*| 热度|

1 金小伟

发表评论 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-9-27 11:43

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部