JAVA 返回resultSet ResultSet rset=stmt.executeQuery(sql); 直接执行的语句能否返回结果集呢

函数如下,不知道能不能返回按照条件查询的ResultSet结果集
请高手赐教!!
public ResultSet getExperiments(String teacherID)throws SQLException {

Connection conn=null; //创建新连接
String sql = "select * from TeacherToExperiment where TeacherID="+teacherID;

Statement stmt=conn.createStatement(); //创建语句对象
ResultSet rset=stmt.executeQuery(sql); //执行数据查询语句

rset.close();
stmt.close();
return rset;

/**
* 返回一个教师的所有实验
*/

嗯嗯,ResultSet只是jdbc内部封装的一个接口而已,你用它来做方法的返回值,好像不行吧,呵呵,如果用list集合的话应该是这样的:这是我刚学java的时候写的,比较繁琐,希望对你有用哦,呵呵
public List<EmployeeInfo> queryAllEmployee() {//关键是方法的返回值的问题
List<EmployeeInfo> list = new ArrayList<EmployeeInfo>();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
conn = DBUtil.getConnection();
try {
pstmt = conn.prepareStatement("select*from employeeInfo");
rs = pstmt.executeQuery();
while (rs.next()) {
EmployeeInfo employee = new EmployeeInfo();
employee.setEmployeeID(rs.getInt("employeeID"));
employee.setIsLead(rs.getString("isLead"));
list.add(employee);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.closeAll(pstmt, rs, conn);
}
return list;//这里返回list集合就行了,呵呵
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-01
呵呵,应该是不可以的,你为什么不把返回类型设置成list集合呢,是一样的呀,难道你还有别的什么特别的要求或者功能吗?追问

因为这几个类都是组长给发过来的,函数头都是写好的,所以我就按照她写的返回值来编的,能再讲细一些吗?为什么不可以,怎样才能返回resultSet结果集?如果改成你说的那个List应该怎么做呢?谢谢!

追答

嗯嗯,ResultSet只是jdbc内部封装的一个接口而已,你用它来做方法的返回值,好像不行吧,呵呵,如果用list集合的话应该是这样的:这是我刚学java的时候写的,比较繁琐,希望对你有用哦,呵呵
public List queryAllEmployee() {//关键是方法的返回值的问题
List list = new ArrayList();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
conn = DBUtil.getConnection();
try {
pstmt = conn.prepareStatement("select*from employeeInfo");
rs = pstmt.executeQuery();
while (rs.next()) {
EmployeeInfo employee = new EmployeeInfo();
employee.setEmployeeID(rs.getInt("employeeID"));
employee.setIsLead(rs.getString("isLead"));
list.add(employee);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.closeAll(pstmt, rs, conn);
}
return list;//这里返回list集合就行了,呵呵
}

本回答被提问者和网友采纳
第2个回答  2011-05-02
可以返回结果集合的,前提是,不要关闭 rset.close();
这句话不能写在这里。
第3个回答  2011-05-01
我平常编程用C sharp比较多,JAVA就不太熟悉,但也给些意见吧,希望可以帮到你啦
我觉得应该不可以吧,SQL语句有点问题
select * from TeacherToExperiment where TeacherID="+teacherID //等号后面应该用单引号括起要查找的内容
第4个回答  2011-05-02
resultset 在statement 关闭后应该没有了吧,
自己试一下吧。追问

如果在关闭之前返回ResultSet 行吗?就是想吧查询结果返回。

追答

不关闭是可以的,但如果关闭了ResultSet或者Statement都不能再在其它地方使用ResultSet.

相似回答