||
把上一篇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);
}
}
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-10-19 22:40
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社