java - 在我的 swt 表上获取数据库表结果集

标签 java jdbc swt

我是 SWT 的新手,我需要使用它的表格小部件。我想向我的数据库发送查询并创建一个表。 setText() 函数只接受一个新的字符串数组或一个字符串,尽管有很多列,我应该怎么做才能显示我的行。这是我的代码:

try{

ResultSet getTable=dbconnect.connect.createStatement().executeQuery("select * from Status");
ResultSetMetaData md = getTable.getMetaData();
int columns = md.getColumnCount();
for (int i = 1; i <= columns; i++) {
tblclmnNewColumn = new TableColumn(table, SWT.NONE);
tblclmnNewColumn.setWidth(100);
tblclmnNewColumn.setText(md.getColumnName(i));
columnNames.add( md.getColumnName(i));

}

for(int i=0;i<columnNames.size();i++){
String set;
if(i==columnNames.size()-1){
set="getTable.getString"+"("+'"'+columnNames.get(i)+'"'+")";
}else{                  
set="getTable.getString"+"("+'"'+columnNames.get(i)+'"'+")"+",";
                    }
columsresultset.add(set);
element[i]=columsresultset.get(i);

System.out.println(columsresultset.get(i)); 
                }
String elements[]=new String[columsresultset.size()];
while (getTable.next()) {
TableItem tableItem =(TableItem) new TableItem(table, SWT.NONE);
tableItem.setText(elements);                         
}

最佳答案

如何使用 setText(yourDatabaseColumnIndex - 1, yourDatabaseColumnValue)。当然,无论如何您都必须创建您的 TableColumn,就像您在代码中所做的那样。示例:

while(resultSet.next())
{
    TableItem tableItem = new TableItem(table, SWT.NONE);
    for(int i = 1; i <= resultSet.getMetaData().getColumnCount(); i++)
    {
        tableItem.setText(i-1, resultSet.getString(i));
    }
}

不能保证我没有遗漏任何 ;{;-)。您也可以通过将列数写入变量来稍微优化一下。

关于java - 在我的 swt 表上获取数据库表结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18012640/

相关文章:

java - Eclipse SWT java.lang.StackOverflowError : why my listener executes many times?

java - 使用java从下拉列表中选择一个元素

java - 噩梦般的 java 泄漏...使用循环和 jdbc

java - 带 PrintDialog 的 PDF 渲染器

java - 耗尽结果集

java - "sql like"apache 配置单元的替代品

java - 清除并重绘 Eclipse 插件项目中的 View

java - BeanManager 方法 getReference() 在应用程序初始化期间不可用

java - 在java中格式化本地时间

java - 如何配置Tomcat连接MySQL