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;
}
UPDATE 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
@Ryan実際には最大2,147,483,647通貨単位です。韓国では、それは「唯一の」2百万ドルです! – assylias
@assylias oh snap!ハイパーインフレーションの最適化 – BigOmega