try{
//connection BookDb(ODBC DATA SOURCE)
String strODBCConnection = "jdbc:odbc:BookDb";
Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
connection = DriverManager.getConnection(strODBCConnection); //execute sql statement
statement = connection.createStatement();
strSql = new String("select BookId from Book");
resultset = statement.executeQuery(strSql);
while(resultset.next()) //add this
{
//display query result
System.out.println(resultset.getString(1));
} }catch(Exception e){
System.out.println("Error:"+e.getMessage());
}
//connection BookDb(ODBC DATA SOURCE)
String strODBCConnection = "jdbc:odbc:BookDb";
Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
connection = DriverManager.getConnection(strODBCConnection); //execute sql statement
statement = connection.createStatement();
strSql = new String("select BookId from Book");
resultset = statement.executeQuery(strSql);
while(resultset.next()) //add this
{
//display query result
System.out.println(resultset.getString(1));
} }catch(Exception e){
System.out.println("Error:"+e.getMessage());
}
改为
System.out.println(resultset.getString(0));
这一句有什么作用???
package dbmscommand;import java.sql.*;
import javax.swing.table.*;
import java.util.*;
import javax.swing.event.*;
//结果集表模型,继承了类AbstractTableModel
public class ResultsTableModel extends AbstractTableModel{
//定义字符串数组存储列名
String[] columnNames = new String[0];
//定义具体的数据对象数组,存储结果集中的数据
Object[][] dataRows;
//定义表模型的事件
TableModelEvent e1;
//定义变量存储行数
int rowsCount;
//设置从数据库返回的结果集的具体信息
//参数results是结果集对象
public void setResultSet(ResultSet results){
try{
//定义结果集的具体数据信息,从参数里面把数据全部信息存入定义的结果集数据信息
ResultSetMetaData metadata = results.getMetaData();
//定义变量存储列数
int columnsCount = metadata.getColumnCount();
//定义数组变量存储列名
columnNames = new String[columnsCount];
// 一一得到列名
for(int i = 0; i < columnsCount; i++)
{
//使用数据具体信息的方法getColumnLabel把列名赋值给数组
columnNames[i] = metadata.getColumnLabel(i+1);
}
//定义一个变量来暂时存储结果集行数
int i=0;
//获取行数
while(results.next())
{
i++;
}
//把行数保存到rowsCount
rowsCount=i;
//把i赋0以把结果集给dataRows赋值的时候,作为循环变量使用
i=0;
//把光标移到第一行
results.beforeFirst();
dataRows=new Object [rowsCount][columnsCount];
while(results.next()) // 行的改变
{
for(int j = 0; j < columnsCount; j++) // 每一列的改变
{
//把参数结果集的数据信息一一赋给dataRows
dataRows[i][j]= results.getString(j+1);
}
//循环变量增加
i++;
}
// 表的信息改变
fireTableChanged(e1);
}
//SQL异常抛出
catch (SQLException sqle)
{
System.err.println(sqle);
}
}
//获取列数
public int getColumnCount(){
//返回列的长度
return columnNames.length;
}
//获取行数
public int getRowCount(){
return rowsCount;
}
//获取结果集中的数据
public Object getValueAt(int row, int column){
//一字符串的形式返回结果集中的数
Object aa=new Object();
try{
aa= ((String)(dataRows[row][column]));
}catch(ArrayIndexOutOfBoundsException e){
//System.err.println(e.getMessage());
}
return aa;
}
//获取列名
public String getColumnName(int column){
//使用三目运算符,当列名为空的时候
//返回No Name否则使用返回columnNames[column],即列名数组的内同
return columnNames[column] == null ? "No Name" : columnNames[column];
}
}