也要把sqlStmt关闭掉。jsp为:
<%@ page import="java.sql.*,java.util.*,DataBase,ReadDBConfig,Storage"%>
<html>
<head>
<title>
从存储过程中取数据
</title>
</head>
<body>
<%@ page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="db" class="Storage" scope="page"></jsp:useBean>
<jsp:setProperty name="db" property="*"/>
<%
String strname1="";
String strwelcome="";
String strmyname="";
String strsql1="";
String name=request.getParameter("name");
strsql1 = "{call sp_jsptest(?)}";
if (!name=null)
{
strname1 = new java.lang.String(name.getBytes("ISO8859_1"),"gb2312");
}else{
//当name==null时,你应该做的处理
}
//strsql1和strname1都能够打印出来了
//执行该存储过程并返回结果集
ResultSet sqlRst = db.transfer(strsql1,strname1); //获取来自结果集中的数据
sqlRst.next(); //获取输出参数的值
strwelcome = sqlRst.getString(1);
strmyname = sqlRst.getString(2);
//关闭记录集
sqlRst.close();
%>
</body>
</html>
<%@ page import="java.sql.*,java.util.*,DataBase,ReadDBConfig,Storage"%>
<html>
<head>
<title>
从存储过程中取数据
</title>
</head>
<body>
<%@ page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="db" class="Storage" scope="page"></jsp:useBean>
<jsp:setProperty name="db" property="*"/>
<%
String strname1="";
String strwelcome="";
String strmyname="";
String strsql1="";
String name=request.getParameter("name");
strsql1 = "{call sp_jsptest(?)}";
if (!name=null)
{
strname1 = new java.lang.String(name.getBytes("ISO8859_1"),"gb2312");
}else{
//当name==null时,你应该做的处理
}
//strsql1和strname1都能够打印出来了
//执行该存储过程并返回结果集
ResultSet sqlRst = db.transfer(strsql1,strname1); //获取来自结果集中的数据
sqlRst.next(); //获取输出参数的值
strwelcome = sqlRst.getString(1);
strmyname = sqlRst.getString(2);
//关闭记录集
sqlRst.close();
%>
</body>
</html>
解决方案 »
- 怎么理解FileReader fr=new FileReader("win.ini");和BufferedReader br=new BufferedReader(fr);虽然会用但每行应怎么理解
- 为什么后缀名为jsf网页弹出自动关闭??
- 谁帮我解释下这个小程序的输出
- 基于windowbuilder的socket通信问题
- 关于线程对象的垃圾回收
- 寻求Java较快的编译器?(JDK太慢了)
- 关于菜单的问题
- 请问现在市场上主流的应用服务器报价分别是多少?
- 关于用JAVA BEAN如何往ORACLE数据库里存入当前日期,要求精确到秒!!!(100分)
- 我想学一下jbuilder但是不知道在次之前应看些什么??(提建议者比送分)
- 多了一个三角,散分!另问问大家学java的经验(我在java和delphi版都散了)!
- Sybase 中 AutoCommit 怎么设置?紧急!
改正:将
//获取来自结果集中的数据
sqlRst.next();
//获取输出参数的值
strwelcome = sqlRst.getString(1);
strmyname = sqlRst.getString(2); 改为
if (sqlRst.next())
{
//获取输出参数的值
strwelcome = sqlRst.getString(1);
strmyname = sqlRst.getString(2);
}
给分吧,good luck!!!
{
ResultSet sqlRst = db.transfer(strsql1,strname1);
if(sqlRst == null)
{
System.out.println("This ResultSet is " + null);
}
}
在jsp中对数据库操作也要放到try块内。
怀疑没有正确得到sqlRst的对象。
sqlRst.getString(1); 或者sqlRst.getString(2); 为空,你对他造操作时可能也产生空指针异常,所以给你一个方法。
public String NullToSp(String Col) {
if (Col == null)
return "";
else
return Col.trim();
}
strwelcome = NullToSp(sqlRst.getString(1));
strmyname = NullToSp(sqlRst.getString(2));
就没有问题了,