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;
/**
* 返回一个教师的所有实验
*/ 展开
请高手赐教!!
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;
/**
* 返回一个教师的所有实验
*/ 展开
6个回答
展开全部
嗯嗯,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集合就行了,呵呵
}
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集合就行了,呵呵
}
展开全部
呵呵,应该是不可以的,你为什么不把返回类型设置成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集合就行了,呵呵
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以返回结果集合的,前提是,不要关闭 rset.close();
这句话不能写在这里。
这句话不能写在这里。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我平常编程用C sharp比较多,JAVA就不太熟悉,但也给些意见吧,希望可以帮到你啦
我觉得应该不可以吧,SQL语句有点问题
select * from TeacherToExperiment where TeacherID="+teacherID //等号后面应该用单引号括起要查找的内容
我觉得应该不可以吧,SQL语句有点问题
select * from TeacherToExperiment where TeacherID="+teacherID //等号后面应该用单引号括起要查找的内容
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
resultset 在statement 关闭后应该没有了吧,
自己试一下吧。
自己试一下吧。
追问
如果在关闭之前返回ResultSet 行吗?就是想吧查询结果返回。
追答
不关闭是可以的,但如果关闭了ResultSet或者Statement都不能再在其它地方使用ResultSet.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询