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

函数如下,不知道能不能返回按照条件查询的ResultSet结果集请高手赐教!!publicResultSetgetExperiments(StringteacherID)... 函数如下,不知道能不能返回按照条件查询的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;

/**
* 返回一个教师的所有实验
*/
展开
 我来答
郭某人来此
2015-10-06 · TA获得超过1645个赞
知道答主
回答量:952
采纳率:100%
帮助的人:86.7万
展开全部
嗯嗯,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集合就行了,呵呵
}
baixiongfei235
2011-05-01 · 超过34用户采纳过TA的回答
知道答主
回答量:113
采纳率:0%
帮助的人:89.6万
展开全部
呵呵,应该是不可以的,你为什么不把返回类型设置成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集合就行了,呵呵
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zyx80002
2011-05-02 · 超过27用户采纳过TA的回答
知道答主
回答量:226
采纳率:0%
帮助的人:51.7万
展开全部
可以返回结果集合的,前提是,不要关闭 rset.close();
这句话不能写在这里。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友78d1daa8f
2011-05-01
知道答主
回答量:12
采纳率:0%
帮助的人:0
展开全部
我平常编程用C sharp比较多,JAVA就不太熟悉,但也给些意见吧,希望可以帮到你啦
我觉得应该不可以吧,SQL语句有点问题
select * from TeacherToExperiment where TeacherID="+teacherID //等号后面应该用单引号括起要查找的内容
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bemg123
2011-05-02 · 超过45用户采纳过TA的回答
知道小有建树答主
回答量:140
采纳率:0%
帮助的人:123万
展开全部
resultset 在statement 关闭后应该没有了吧,
自己试一下吧。
追问
如果在关闭之前返回ResultSet 行吗?就是想吧查询结果返回。
追答
不关闭是可以的,但如果关闭了ResultSet或者Statement都不能再在其它地方使用ResultSet.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式