jsp调用存储过程

datapub 2001-06-26 02:14:09
如何在jsp中调用存储过程,最好有代码!谢谢
...全文
165 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
BrentIvan 2001-06-30
  • 打赏
  • 举报
回复
<%--
作者:何志强[hhzqq@21cn.com]
日期:2000-08-04
   2000-08-16
版本:1.1
功能:JSP数据库操作例程 - 存储过程 - JDBC-ODBC - SQL Server

SQL Server的存储过程如下:
create procedure sp_jsptest
@yourname varchar(50),
@myname varchar(50) output
as
select "您好,"+@yourname+",非常高兴认识您,^_^"
set @myname = "何志强"
return 1
go
--%>

<%@ page contentType="text/html;charset=gb2312"%>

<%
//变量声明
java.lang.String strName; //姓名

//取得用户输入的数据
strName = request.getParameter("name");
if(strName==null){//用户没有输入姓名
%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JSP数据库操作例程 - 存储过程 - JDBC-ODBC - SQL Server</title>
</head>
<body>

<form action="jdbc-odbc.jsp" method="post">
您尊姓大名:<input type="text" name="name" maxlength="50">
<input type="submit" value="提交">
</form>

</body>
</html>

<%
}
else{
//对用户输入的数据作必要的字符编码转换
strName = new java.lang.String(strName.getBytes("iso-8859-1"));

//变量声明
java.sql.Connection sqlCon; //数据库连接对象
java.sql.CallableStatement sqlStmt; //可调用语句对象
java.sql.ResultSet sqlRst; //结果集对象

java.lang.String strCon; //数据库连接字符串
java.lang.String strSQL; //SQL语句

java.lang.String strWelcome; //欢迎词
java.lang.String strMyName; //我的姓名
int intReturn; //返回值

//装载JDBC-ODBC驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

//设置数据库连接字符串
strCon = "jdbc:odbc:jspdemo";

//连接数据库
sqlCon = java.sql.DriverManager.getConnection(strCon,"sa","");

//准备SQL语句
strSQL = "{? = call sp_jsptest(?,?)}";

//准备可调用语句对象
sqlStmt = sqlCon.prepareCall(strSQL);

//设置输入参数
sqlStmt.setString(2,strName);

//登记输出参数
sqlStmt.registerOutParameter(1,java.sql.Types.INTEGER);
sqlStmt.registerOutParameter(3,java.sql.Types.VARCHAR);

//执行该存储过程并返回结果集
sqlRst = sqlStmt.executeQuery();

//获取来自结果集中的数据
sqlRst.next();
strWelcome = sqlRst.getString(1);

//获取输出参数的值
strMyName = sqlStmt.getString(3);

//获取返回值
intReturn = sqlStmt.getInt(1);

//关闭记录集
sqlRst.close();

//关闭可调用语句对象
sqlStmt.close();

//关闭数据库对象
sqlCon.close();
%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JSP数据库操作例程 - 存储过程 - JDBC-ODBC - SQL Server</title>
</head>
<body>

<%=strWelcome%><br>
我是<%=strMyName%><br>
返回值是<%=intReturn%>

</body>
</html>

<%
}
%>
kookoo 2001-06-27
  • 打赏
  • 举报
回复
存储过程为 sp_procedure,两个参数
CallableStatement cstmt = con.prepareCall("{call sp_procedure(?,?)}");
cstmt.registerOutparameter(2,java.sql.Types.FLOAT);
cstmt.setint(1,parameter1);
cstmt.execute();
out.println("Procedure output is :"+cstmt.getFloat(2));
datapub 2001-06-26
  • 打赏
  • 举报
回复
具体一点可以吗,如何调用!谢谢
coolknight 2001-06-26
  • 打赏
  • 举报
回复
使用CallableStatement

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧