当前位置: 代码迷 >> Java相关 >> 一个简单查询函数有关问题
  详细解决方案

一个简单查询函数有关问题

热度:8074   发布时间:2013-02-25 21:46:55.0
一个简单查询函数问题
public static List<String> getData(String sql, int n) {

List<String> result = new ArrayList<String>();
String tmp = "";

// 连接数据库
Connection conn = getConnection();

// 读取数据
try {
Statement stmt = conn.createStatement();

// 查询表信息
ResultSet rs = stmt.executeQuery(sql);

while (rs.next()) {
for (int i = 0; i < n; i++) {
tmp += rs.getString(i + 1) + "_";
}

System.out.println(tmp);

}

stmt.close();

} catch (SQLException e) {
e.printStackTrace();
}

// 关闭连接
closeConnection(conn);
System.out.println(result);//测试
return result;

}
注:查询结果可以通过System.out.println(tmp);输出来,但是调用该函数以后无结果,是不是return result不对?要返回结果应该return什么?


------解决方案--------------------------------------------------------
你在while (rs.next())这个循环中,并没有把rs中的数据,封装为VO,然后add到result中去啊,当然是啥都没有了。
------解决方案--------------------------------------------------------
result 都没有定义,也没有把temp、赋值给result
------解决方案--------------------------------------------------------
不知道LZ想要什么
Java code
while (rs.next()) {for (int i = 0; i < n; i++) {tmp += rs.getString(i + 1) + "_";result.add(tmp); //是要每条记录的字符串结果}System.out.println(tmp);//result.add(tmp); //还是所有记录统合为一个字符串的结果//不管LZ想要什么结果,如果不把需要的结果保存到result中,返回值就什么都没有
------解决方案--------------------------------------------------------
你直接用字段序号来取值,这比较诡异;给个示范性效果,不过比较不雅观:

Java code
while (rs.next()) {  String[] row = new String[n];  for (int i = 0; i < n; i++) {    row[i] = rs.getString(i+1);  }  result.add(row);}
------解决方案--------------------------------------------------------
你值都没往result里丢、肯定木有数据的嘛
  相关解决方案