java 通过指定列 读取列中的数据,返回的都是最后一个行的数据,怎么破?怎么能全部读取

publicStringgetSql(Stringmc,Stringsql){StringXlxqStr=null;if(null==conn){conn=getCon(... public String getSql(String mc ,String sql){
String XlxqStr = null;
if(null == conn){
conn = getCon();
}
try{
st = conn.createStatement();
rs = st.executeQuery(sql);
while(rs.next()){
XlxqStr = rs.getString(mc);
}
}catch(SQLException e){
e.printStackTrace();
}
return XlxqStr;
}

这个按列名 读取列中的数据。
怎么全部读取呢?每次输出时候 只显示最后行的的数据。
展开
 我来答
紫薇参星
科技发烧友

2013-01-28 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3592万
展开全部
你可以把读取到的数据放到一个String数组里,一个List,一个ArrayList或者一个StringBuffer里,然后返回这个String数组,List,ArrayList或者StringBuffer.
更多追问追答
追问
我都放在StringBuilder..  不行。。
StringBuilder sb = new StringBuilder();
sb.append(data.getSql("mc", sql));
sb.append(data.getSql("dwi", sql));
sb.append(data.getSql("qu", sql));
sb.append(data.getSql("gg", sql));
sb.append(data.getSql("zz", sql));

system.out.println(sb);
一试,出来的都是这些列的 最后一行的内容
追答
你把这一段程序都放到while(rs.next())循环里,象这样:
while(rs.next()){
StringBuilder sb = new StringBuilder();
sb.append(rs.getString(mc));
sb.append(rs.getString(dwi));
sb.append(rs.getString(qu));
sb.append(rs.getString(gg));
sb.append(rs.getString(zz));
system.out.println(sb);
}
就可以在控制台打印所有数据了。
开发者经验库
2013-01-28 · TA获得超过383个赞
知道小有建树答主
回答量:465
采纳率:0%
帮助的人:290万
展开全部
这肯定是最后一个数据啦,因为每次你都把前面的数据覆盖了:XlxqStr = rs.getString(mc);
1.你可以这样写:XlxqStr =XlxqStr+" "+ rs.getString(mc)+" ";,把得到的数据变成一个长的String。如果数据实在太多,可以考虑用StringBuffer。分割的话可以用String 的split方法。
2.你可以用ArrayList数据存储数据。
ArrayList<String> XlxqStr=new ArrayList<String>();
while(rs.next()){
XlxqStr.add(rs.getString(mc));
}
追问
用 XlxqStr =XlxqStr+" "+ rs.getString(mc)+" ";, 我把空格去掉了 输出的怎么带个null的?
我就是要变成一个长String

null为俄文我空间null问额外全额而昆仑镜null五千二俄方电脑

而用ArrayList的话是集合了,
[为俄文, 我, 空间][问额外全额, 而, 昆仑镜]

我是要输入个str 然后 indexOf 跟这些对比。 需要不需要 换成字符串呢? 还是说可以直接对比?
追答
如果和长字符来用作对比的话可以用contains,就是包含的意思。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
http_p
2013-01-28 · TA获得超过1095个赞
知道小有建树答主
回答量:733
采纳率:100%
帮助的人:584万
展开全部
public List getSql()

List<String> XlxqStr = new ArrayList<String>();

while(rs.next()){
XlxqStr.add(rs.getString(mc));
}
更多追问追答
追问
获得了很多个集合, 能把那么多个集合的内容 串起来变成一个超长型的字符串吗
追答
你已经获得list了, list里一个元素就对应你的一条数据, 你想怎么处理都可以

如果你的一条数据时多列, 也就是说, 要么你用一个对象来存一条数据, 要么你把这好多列拼成一个字符串来表示一条数据, 总之, list里一个元素就代表一条数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式