在java中同时发出600个不同的sql请求

时间:2013-08-06 11:13:37

标签: java mysql

我有一个问题,我无法弄清楚,我不知道用哪个关键词搜索。

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

此代码不起作用,但也没有给出任何错误。

最诚挚的问候,

1 个答案:

答案 0 :(得分: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)