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