Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中同时有600个不同的sql请求_Java_Mysql - Fatal编程技术网

java中同时有600个不同的sql请求

java中同时有600个不同的sql请求,java,mysql,Java,Mysql,我有一个问题,我无法找出它,我不知道搜索与哪些关键字 我有mysql数据库和一个java程序。在我的数据库中,有一个类似于“doors”的表,在doors表中有3列类似于“door\U id、door\U name、door\U active”。我的桌子像: door_id door_name door_active 1 frontdoor 1 2 backdoor 0 3 sidedoor

我有一个问题,我无法找出它,我不知道搜索与哪些关键字

我有mysql数据库和一个java程序。在我的数据库中,有一个类似于“doors”的表,在doors表中有3列类似于“door\U id、door\U name、door\U active”。我的桌子像:

door_id    door_name    door_active
   1       frontdoor          1
   2       backdoor           0
   3       sidedoor           1
   4       garagedoor         1
因此,在这个表中,如果door_active='1',doors列表。如果我需要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个数据

我的问题是,我如何在一次请求中为菜单项生成600active门这样的代码

注意:我知道我的sql,比如ResultSet res1=st1.executeQuery(“从door\u active='1'”所在的doors中选择door\u id,door\u name”)但是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"));
}
}
此代码不工作,但也没有给出任何错误


致以最诚挚的问候,

您可以用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
或者您可以在子句中使用

SELECT door_name 
FROM doors 
WHERE door_active='1' 
AND door_id in (1, 3, ..., 600)
并在java代码中替换

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


在sql中没有问题,我可以理解,但在java中,如何列出每个菜单项的每个门名称。我只找到一个请求。你想每个门一个菜单项吗?您需要创建一些菜单项集合。也许我只是不明白这个问题。@HaroldWren您需要在
while(res1.next())
循环中做更多的工作-在每次迭代中读取ID和名称并将其添加到例如ID->name的映射中,或者创建一个新的菜单项并将其添加到主菜单中,或者你的框架需要的任何东西。我认为你需要在你的问题中给出更多细节。好吧
其中door\u active='1'和door\u id='1'
恰好匹配一个door。你已经有了一个while循环来遍历你的结果集,因此如果你创建了一个限制性较小的查询(如juergen d所解释的),你的循环执行的次数将与结果集中的点击次数一样多。你是否尝试过:
res1.getInt(“door_id”)==1)
如果不工作,你的菜单项就没有门名称,对吗?@juergend是的,你是对的。@juergend谢谢:)它正在工作:)
if(res1.getInt("door_id") == 1)