[英]How do i use getIntent().getSerializableExtra to retrieve data from the database
[英]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.