关于java.sql问一个问题,请大家帮忙,谢谢

qq102568183 2008-01-31 03:35:22
import java.sql.*;
public class ConnectAccess{
public static void main(String[] args){
try{
String connecturl = "jdbc:odbc:SearchCode";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection(connecturl, "user", "abc123");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM city_array");//------!把这句改掉!------
while(rs.next()){
String cityname=rs.getString(2);
String citycode=rs.getString(3);
System.out.println("城市:"+cityname);
System.out.println("代码:"+citycode);}
stmt.close();
conn.close();}catch(Exception e){
System.out.println(e);
}
}
}

数据表city_array格式为:
cityid cityname citycode
(自动编号) (字符串) (字符串)<-无规律的- -
1 北京 0100
2 上海 0200
......以下略

代码运行结果是:
城市:北京
代码:0100
城市:上海
代码:0200
...直到每行记录都输出...

现我把ResultSet rs = stmt.executeQuery("SELECT * FROM city_array");这句改成ResultSet rs = stmt.executeQuery("SELECT * FROM city_array WHERE citycode='1202'");为什么结果还是老样子?
想要输出成只有一条记录:

城市:济南
代码:1202

应该怎样改代码?希望高手指教,谢谢啦!
...全文
78 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zdblzwj 2008-01-31
  • 打赏
  • 举报
回复
1楼正解
mark
枫叶rain 2008-01-31
  • 打赏
  • 举报
回复
是啊,你应该是用错where条件了,你看看哪个是主键
用主键来确定你要的信息啊
srss008 2008-01-31
  • 打赏
  • 举报
回复
哇赛,楼主好厉害,凌晨3点多还没休息
shaoml 2008-01-31
  • 打赏
  • 举报
回复
同意楼上的。
老紫竹 2008-01-31
  • 打赏
  • 举报
回复
因为数据库里 citycode='1202'的不只是济南一个吧!呵呵!

如果你要明确的结果,你可以用
where cityid='0100' 啊!cityid才是主键。
qq102568183 2008-01-31
  • 打赏
  • 举报
回复
问题已经解决了,我忘了加rs.close()了,加上这句结果就正确了。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧