读书人

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

发布时间: 2012-04-11 17:42:33 作者: rapoo

一个简单查询函数问题
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里丢、肯定木有数据的嘛

读书人网 >Java相关

热点推荐