这个是编写的javabean,用来从数据库里面获取数据,并且分页显示,为什么字段都能查出来,而字段里的数据什么都没有,一片空白的呢??大家看看哪里有问题,感谢了。
package beans;
import java.sql.*;
import com.sun.rowset.*;
public class ShowRecordByPage{
int pageSize=10;
int pageAllCount=0;
int showPage=1;
StringBuffer presentPageResult;
CachedRowSetImpl rowSet;
String databaseName="";
String tableName="";
String user="";
String password="";
String 字段[]=new String[100];
int 字段个数=0;
public ShowRecordByPage(){
presentPageResult=new StringBuffer();
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e){}
}

public  void setPageSize(int size){
pageSize=size;
字段个数=0;
String uri="jdbc:mysql://localhost/"+databaseName;
try{
Connection con=DriverManager.getConnection(uri,user,password);
DatabaseMetaData metadata=con.getMetaData();
ResultSet rs1=metadata.getColumns(null,null,tableName,null);
int k=0;
while(rs1.next()){
字段个数++;
字段[k]=rs1.getString(4);
k++;
}
Statement sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs=sql.executeQuery("select * from"+tableName);
rowSet=new CachedRowSetImpl();
rowSet.populate(rs);
con.close();
rowSet.last();
int m=rowSet.getRow();
int n=pageSize;
pageAllCount=((m%n)==0)?(m/n):(m/n+1);
}
catch(SQLException exp){
System.out.print("error");
}
}

public int getPageSize(){
return pageSize;
}
public int getPageAllCount(){
return pageAllCount;
}
public void setShowPage(int n){
showPage=n;
}
public int getShowPage(){
return showPage;
}

public StringBuffer getPresentPageResult(){
if(showPage>pageAllCount)
showPage=1;
if(showPage<=0)
showPage=pageAllCount;
presentPageResult=show(showPage);
return presentPageResult;
}

public StringBuffer show(int page){
StringBuffer str=new StringBuffer();
str.append("<table border=1>");
str.append("<tr>");
for(int i=0;i<字段个数;i++)
str.append("<th>"+字段[i]+"</th>");
str.append("</tr>");
try{
rowSet.absolute((showPage-1)*pageSize+1);
for(int i=1;i<=pageSize;i++){
str.append("<tr>");
for(int k=1;k<=字段个数;k++)
str.append("<td>"+rowSet.getString(k)+"</td>");
str.append("</tr>");
rowSet.next();

}
catch(SQLException exp){
System.out.print("error2");
}
str.append("</table>");
return str;
}

public void setDatabaseName(String s){
databaseName=s.trim();
}
public String getDatabaseName(){
return databaseName;
}
public void setTableName(String s){
tableName=s.trim();
}
public String getTableName(){
return tableName;
}
public void setPassword(String s){
password=s.trim();
}
public void setUser(String s){
user=s.trim();
}
public String getUser(){
return user;
}

}

解决方案 »

  1.   

    是不是数据库里没有数据,有数据的话用System.out.println(rs)输出一下结果集,看是否有能输出,如果能,那再一点点System.out.println(rs.getString("name"))看看,这样比较容易解决问题。
      

  2.   

    你虽然sql语句是"select * from"+tableName ,会把表里面的数据查询出来,可是你代码里就接收了字段的数值啊。
      

  3.   

    不是啊,接收的还有里面数据的值的啊。
    try{
                rowSet.absolute((showPage-1)*pageSize+1);
                for(int i=1;i<=pageSize;i++){
                    str.append("<tr>");
                    for(int k=1;k<=字段个数;k++)
                        str.append("<td>"+rowSet.getString(k)+"</td>");
                    str.append("</tr>");
                    rowSet.next();    
                } 
            }
            catch(SQLException exp){
                System.out.print("error2");
            }
    这段不是接收字段里面数据的值吗?