为了账号安全,请及时绑定邮箱和手机立即绑定

java查询数据库只要求返回一条结果

java查询数据库只要求返回一条结果

红糖糍粑 2019-03-12 09:09:07
package com.gingersoft.db;import java.sql.*;import javax.swing.JFrame;public class Application8_1{public static void main(String args[]){Connection con;Statement sql;ResultSet rs;try{Class.forName("com.mysql.jdbc.Driver"); }catch(ClassNotFoundException e){System.out.print(e);}try{con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql","root","");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM message");while(rs.next()){String no = rs.getString(1);String name = rs.getString(2);String sex = rs.getString(3);String data = rs.getString(4);String sfees = rs.getString(5);System.out.printf("%s", no);System.out.printf("%s", name);System.out.printf("%s", sex);System.out.printf("%s", data);System.out.printf("%s", sfees);System.out.printf("\n");}con.close();}catch(SQLException e){System.out.println(e);}}}这个是把整个列表都查询出来了我想要的是 如果我吧SQL语句改为SELECT * FROM message WHERE name=“xx”;只要求显示出这个名字 的那条信息即可应该怎么处理rs得到的数据集;
查看完整描述

3 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

你的意思是对于 name=“XX”的数据是有多个的?

那看你想怎么取了,是想要其中的任意一条就可以?

1SELECT FROM message WHERE name="xx" limit 1;

还是选择里面有所特别的数据?

1SELECT FROM message WHERE name="xx" and 其他条件;

你拼接的sql有问题,你的name字段是varchar类型的吧,拼接sql时别加引号

1rs=sql.executeQuery("SELECT * FROM message WHERE name='XX'");


查看完整回答
反对 回复 2019-03-20
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

mysql:select * from message limit 1;
sqlserver: select top 1* from message;
oracle: select * from message where rownum=1;
sqlite: cursor.isFirst();

查看完整回答
反对 回复 2019-03-20
?
慕斯王

TA贡献1864条经验 获得超2个赞

有两种方法:
方法一:SELECT * FROM message WHERE name="xx" limit 1;
方法二:查询出来之后while(rs.next()){........}把这个地方的while改成if。
不过推荐第一种方法

查看完整回答
反对 回复 2019-03-20
  • 3 回答
  • 0 关注
  • 2199 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信