怎么把数据库结果集以表格形式呈现在界面上

来源:互联网 发布:mac pro需要贴膜吗 编辑:程序博客网 时间:2024/04/29 07:47

一.把结果集的数据填入一个二维数组

1.resultset对象的getmetadata()

  

Open DeclarationResultSetMetaData java.sql.ResultSet.getMetaData() throwsSQLException

Retrieves the number, types and properties of thisResultSet object's columns.

Returns:
the description of thisResultSet object's columns

我的理解是这样的:
metadata元数据,元就是最小单位,结果集还能按列划分为一列一列的数据。所以resultset对象的getmetadata()返回的是关于列的描述。列的描述有 number, types and properties等,所以单纯的
getmetadata()还不能用,所以有:
getMetaData().getColumnCount()  返回数据集的列数
getMetaData().getColumnName()  返回数据集的列名(数据集对应的表的各个列的列名)

2.resultset对象的getObject()

        Object在这里其实是字段的意思,我们知道结果集是多行多列的,字段就是某行某列的数据。它就相当于二维数组的一个数组元素。

3.resultset对象的getRow()

       返回结果集的行数

   或用以下这种方法:    

利用循环ResultSet的元素来获得ResultSet的总行数

ResultSet rset = stmt.executeQuery("select * from yourTableName"); 
int rowCount = 0; 
while(rset.next()) { 
   rowCount++; 
}

rowCount就是ResultSet的总行数。


二.把结果集的列名填入一个一维数组

getMetaData().getColumnName()  返回数据集的列名


以下java文件中

functionview.getrecord(str2)把结果集的数据填入一个二维数组

functionview.gengxing("sc")把结果集的列名填入一个一维数组


package function;



import java.sql.ResultSet;
import java.sql.SQLException;


import javax.swing.JOptionPane;


import com.mysql.jdbc.ResultSetMetaData;


import denglu.dengluview;


public class functionview 
{
public static ResultSet rs;
public static int hang;
public static int lie;
public static Object[][] getrecord(String str1)//以sql语句为参数
{
Object a[][] = null;
//ResultSet rs;
String str;
str=str1;
try 
{
rs = dengluview.sql.executeQuery(str);
System.out.println("SQL语句正确。");
lie=rs.getMetaData().getColumnCount();
hang=0;
while(rs.next())
{
hang++;
}
//System.out.println(hang);
a=new Object[hang][lie];
rs.first();
int j;
for(j=0;j<hang;j++)
{
for(int i=1;i<=lie;i++)
{
a[j][i-1]=rs.getObject(i);
 
}
rs.next();
}

catch (SQLException e) 
{
// TODO Auto-generated catch block
JOptionPane.showMessageDialog( null ,"数据异常") ;
}
return a;
}
public static Object[] gengxing(String str)//以表为参数
{
String st=str;
Object []b=null;
try 
{
rs = dengluview.sql.executeQuery("select * from  " + st);
ResultSetMetaData rsmd=(ResultSetMetaData) rs.getMetaData();   //总列数
int size=rsmd.getColumnCount();
b=new Object[size];
for(int i=1;i<=size;i++)
{
b[i - 1] = rsmd.getColumnName(i);
}

catch (SQLException e)
{
// TODO Auto-generated catch block
JOptionPane.showMessageDialog( null ,"数据异常") ;

}
return b;
}

}


三.新建表格

    JTable(Object[][] rowdata ,Object[] columnNames)

创建一个表格显示二维数组中的值,其列名是columnNames

例:

table=new JTable(functionview.getrecord(str2),functionview.gengxing("sc"));//新建表格

getrecord()返回的是Object[][]类型,gengxing()返回的是Object[]类型

0 0
原创粉丝点击