我有一個數據庫服務器使用JDBC與Java應用程序服務器進行通信。我想將來自數據庫ResultSet的數據存儲到Java變量中。新手嘗試使用Java ArrayList存儲從數據庫獲得的ResultSet
這是我的Java類,HRPeople:
public class HRPeople {
public int elements;
public String[] FirstName;
public String[] LastName;
public String[] Email;
public int[] Salary;
}
我目前使用這個類來存儲來自ResultSet中的數據,如下:
query = "SELECT first_name, last_name, email, salary FROM HR.Employees where rownum < 6";
rset = stmt.executeQuery(query);
while (rset.next()) {
returnHRdata.FirstName[ii] = rset.getString("first_name");
returnHRdata.LastName[ii] = rset.getString("last_name");
returnHRdata.Email[ii] = rset.getString("email");
returnHRdata.Salary[ii] = rset.getInt("salary");
ii = ii + 1;
}
上述方案的問題在於,基本數組要求我知道ResultSet中的行數,以便我可以正確地初始化這些數組。所以我想要做的就是使用ArrayList來代替。我如何修改上述場景來做到這一點?
這是我最初的嘗試(這是關閉)?上面顯示的HRPeople.java文件甚至在這種情況下使用?
query = "SELECT first_name, last_name, email, salary FROM HR.Employees where rownum < 6";
rset = stmt.executeQuery(query);
List<HRPeople> returnHRdata = new ArrayList<HRPeople>();
while (rset.next()) {
returnHRdata.FirstName = rset.getString("first_name");
returnHRdata.LastName = rset.getString("last_name");
returnHRdata.Email = rset.getString("email");
returnHRdata.Salary = rset.getInt("salary");
returnHRdata.add;
}
更新1:
如果我添加的代碼下面,
return returnHRdata;
我得到以下錯誤(任何想法,爲什麼?):
myClass.java:213: incompatible types
found : java.util.List<HRPerson>
required: java.util.ArrayList<HRPerson>
return returnHRdata;
^
1 error
最高工資僅爲2,147,483,647美元?! – BigOmega 2012-03-06 14:43:48
@Ryan實際最大值是2,147,483,647貨幣單位。在韓國,這是「僅」200萬美元! – assylias 2012-03-06 14:46:38
@assylias哦!更好地優化惡性通貨膨脹 – BigOmega 2012-03-06 14:57:13