我有一个问题,我无法弄清楚,我不知道用哪个关键词搜索。
我有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"));
}
}
此代码不起作用,但也没有给出任何错误。
最诚挚的问候,
答案 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)