0

問題があり、それを理解できませんでした。どのキーワードで検索するかわかりません。

私はmysqlデータベースとJavaプログラムを持っています。私のデータベースには「doors」のようなテーブルがあり、doors テーブルには「door_id、door_name、door_active」のような 3 つの列があります。私のテーブルのような:

door_id    door_name    door_active
   1       frontdoor          1
   2       backdoor           0
   3       sidedoor           1
   4       garagedoor         1

したがって、このテーブルでは、door_active ='1' の場合、ドアがリストされます。Java、mysql、私のコード、およびそのようなSQLで1つのドア名が必要な場合:

Statement st1 = baglantiAc();
ResultSet res1 = st1.executeQuery("SELECT door_name FROM doors WHERE door_active='1' AND door_id = '1'");
while (res1.next())
{
jMenuItem1.setText(res1.getString("door_name"));
}

しかし、1回のリクエストで600個のデータがあります。

私の質問は、メニュー項目に対して、1 回のリクエストで600 個のアクティブドアのようなコードを作成するにはどうすればよいかということです。

注: ResultSet res1 = st1.executeQuery("SELECT door_id, door_name FROM door WHERE door_active='1'"); のような SQL を知っています。しかし、Javaコードはどうですか?メニュー項目ごとに結果ごとに ?

たとえば、私のコードは次のようになりますか? しかし、それはうまくいきません:

Statement st1 = baglantiAc();
ResultSet res1 = st1.executeQuery("SELECT door_id, door_name FROM doors WHERE door_active='1'");
while (res1.next())
{

if(res1.getString("door_id").equals('1'))
{
 jMenuItem1.setText(res1.getString("door_name"));
}


if(res1.getString("door_id").equals('2'))
{
 jMenuItem2.setText(res1.getString("door_name"));
}
}

このコードは機能しませんが、エラーも発生しません。

よろしくお願いします、

4

1 に答える 1

1

すべてを取得してJavaで除外することができます

SELECT door_name 
FROM doors 
WHERE door_active='1' 

またはデータが連続している場合は、次のことができます

SELECT door_name 
FROM doors 
WHERE door_active='1' 
AND door_id between 1 and 600

inまたは、句を使用できます

SELECT door_name 
FROM doors 
WHERE door_active='1' 
AND door_id in (1, 3, ..., 600)

そして、あなたのJavaコードで置き換えます

if(res1.getString("door_id").equals('1'))

if(res1.getInt("door_id") == 1)
于 2013-08-06T11:16:48.910 に答える