【发布时间】:2013-03-27 12:04:47
【问题描述】:
我试图在 jsp 中调用一个返回结果集的方法。喜欢,
在 JSP 中:
OracleResultSet rs = null;
rs = getMyValuesHere();
out.println("rs:"+rs);
// rs is not null.Something like oracle.jdbc.driver.OracleResultSetImpl@1f1e1f
如何从结果集中检索我的值? 因为甚至没有进入这个while循环。 ,
while(rs.next()) {
}
方法是:
<%!
public OracleResultSet getMyValuesHere()
{
OracleConnection connection = null;
OraclePreparedStatement ptmst = null;
OracleResultSet rs = null;
OracleCallableStatement cstmt = null;
StringBuffer sql = new StringBuffer();
//My query goes here
connection = (OracleConnection) TransactionScope.getConnection();
sql.append("SELECT DISTINCT something.... ");
rs = (OracleResultSet)ptmst.executeQuery();
return rs;
}
%>
我尝试打印getMyValuesHere()中的数据
rs = (OracleResultSet)ptmst.executeQuery();
while (rs.next())
{
// rs.getString(1)) -- I was able to print this.
}
【问题讨论】:
-
你不应该从 JSP 访问数据库,这是一种糟糕的编码习惯。
-
你为什么用
OracleConnection这样的类而不是Connection等等? -
我假设你的结果是空的,我的意思是你的查询执行没有返回数据。
-
可能结果集是空的......不要在jsp中使用java代码,现在没有客户同意这一点
-
除了上面的cmets,你确定你的查询真的返回了任何数据吗?