java中同时有600个不同的sql请求
我有一个问题,我无法找出它,我不知道搜索与哪些关键字 我有mysql数据库和一个java程序。在我的数据库中,有一个类似于“doors”的表,在doors表中有3列类似于“door\U id、door\U name、door\U active”。我的桌子像: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
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)