私はこれが単純で、おそらく問題をまっすぐ見つめているはずだと知っていますが、もう一度私は立ち往生していて、コードの達人の助けが必要です。
jdbcの列から1行を取得し、それらを配列に入れようとしています。
私はこれを次のように行います:
public void fillContactList()
{
createConnection();
try
{
Statement stmt = conn.createStatement();
ResultSet namesList = stmt.executeQuery("SELECT name FROM Users");
try
{
while (namesList.next())
{
contactListNames[1] = namesList.getString(1);
System.out.println("" + contactListNames[1]);
}
}
catch(SQLException q)
{
}
conn.commit();
stmt.close();
conn.close();
}
catch(SQLException e)
{
}
creatConnectionは、明らかに実行することを実行する定義済みのメソッドです。別の結果セットがある間に結果セットを作成し、その列の文字列を配列に格納します。次に、それを適切に印刷します。そこにあることも確認してください。
問題は、列全体をcontactListNames [1]に格納することです。
column1の行1を[1]に格納するようにしたかった
次に、列1、行2を[2]に入力します。
私はループでこれを行うことができることを知っています。しかし、私はあまりにも単一の列から一度に1つの行だけを取ることを知りません。何か案は?
p.s iveはAPIを読みます、私はjsutが適合するものを見ることができません。
配列を自動的に拡張するためのすべてのロジックを提供するArrayList
を使用する必要があります。
List rowValues = new ArrayList();
while (namesList.next()) {
rowValues.add(namesList.getString(1));
}
// You can then put this back into an array if necessary
contactListNames = (String[]) rowValues.toArray(new String[rowValues.size()]);
次のような意味ですか?
int i = 0;
ResultSet rs = stmt.executeQuery("select name from users");
while (rs.next()) {
String name = rs.getString("name");
names[i++] = name;
}