0

我有一个问题,我想不通,我不知道用哪个关键词来搜索。

我有mysql数据库和一个java程序。在我的数据库中,有一个像“门”这样的表,在门表中有 3 列像“door_id、door_name、door_active”。我的桌子喜欢:

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

因此,在此表中,如果 door_active ='1',则门列表。如果我在 java、mysql、我的代码和 sql 中需要一个门名称:

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"));
}

但我在一个请求中有600 个数据。

我的问题是,我怎样才能在一个请求中为菜单项创建一个像 600 个活动门这样的代码。

注意:我知道我的 sql 像ResultSet res1 = st1.executeQuery("SELECT door_id, door_name FROM door WHERE door_active='1'"); 但是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 回答