簡體   English   中英

如何從SQL數據庫檢索數據?

[英]How do I retrieve data from SQL database?

這是我的聯系。 它成功地工作。

Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection c = DriverManager.getConnection("jdbc:mysql://localhost/Gear?user=root&password=admin");
Statement st = c.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM Weapons");
ResultSetMetaData md = rs.getMetaData();

這是我的檢索數據的代碼。

String[] columns = new String[] { "Id", "Name", "Style", "DPS"};    
int rowcount = 0;

if (rs.last()) //finds out how many rows there are
{
  rowcount = rs.getRow();
  rs.beforeFirst();
}

String[][] data = new String[rowcount][columns.length]; //data storage array

while(rs.next())
{
    for( int i = 0; i < rowcount; i++)
    {
        for( int j = 1; j <= md.getColumnCount();j++)
        {
            System.out.println(data[i][j] = rs.getString(j)); //add the record
        }
    }
}

這是我的表格數據:

ID,武器名稱,樣式,DPS

1,有害人員,魔法,1000

2,提升Cross,遠程1200

3,近戰片假名Tetsu Katana,950

我收到一條錯誤消息,說它是ArrayIndexOutOfBoundsException超出范圍。 如何解決此錯誤?

問題可能是您獲取列值的方式。 要求時,需要提供列名,而不是索引數字值。

像這樣: rs.getString("Id")

只需多次執行此操作即可獲取行中的每個列值。 希望這可以幫助!

您應該使用以下代碼

for( int j = 0; j < columns.length;j++)
    {
        System.out.println(data[i][j] = rs.getString(j + 1)); //add the record
    }

在查看您的代碼時,我不明白使用元數據的意義 您根本不需要使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM