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里丢、肯定木有数据的嘛