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

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

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

萧十郎 2019-05-13 16:08:50
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 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

你的意思是对于 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-05-14
?
弑天下

TA贡献1818条经验 获得超8个赞

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



查看完整回答
反对 回复 2019-05-14
?
呼唤远方

TA贡献1856条经验 获得超11个赞

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

查看完整回答
反对 回复 2019-05-14
  • 3 回答
  • 0 关注
  • 491 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号