欢迎来到天天文库
浏览记录
ID:34723980
大小:73.18 KB
页数:5页
时间:2019-03-10
《jsp调用mssql存储过程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、JSP调用MSSQL存储过程收藏1使用不带参数的存储过程使用JDBC驱动程序调用不带参数的存储过程时,必须使用callSQL转义序列。不带参数的call转义序列的语法如下所示:{callprocedure-name}作为实例,在SQLServer2005AdventureWorks示例数据库中创建以下存储过程:SQLcode:CREATEPROCEDUREGetContactFormalNamesASBEGINSELECTTOP10Title+''+FirstName+''+LastNameASFormalNameFROMPers
2、on.ContactEND此存储过程返回单个结果集,其中包含一列数据(由Person.Contact表中前十个联系人的称呼、名称和姓氏组成)。在下面的实例中,将向此函数传递AdventureWorks示例数据库的打开连接,然后使用executeQuery方法调用GetContactFormalNames存储过程。Javacode:方法一:Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery("{calldbo.GetContactFormalNames}
3、");while(rs.next()){System.out.println(rs.getString("FormalName"));}方法二:CallableStatementcallstat=con.prepareCall("{calldbo.GetContactFormalNames}");ResultSetrs=callstat.executeQuery();while(rs.next()){System.out.println(rs.getString(2));}2使用带有输入参数的存储过程使用JDBC驱动程序调用带参数
4、的存储过程时,必须结合SQLServerConnection类的prepareCall方法使用callSQL转义序列。带有IN参数的call转义序列的语法如下所示:{callprocedure-name[([parameter][,[parameter]]...)]}构造call转义序列时,请使用?(问号)字符来指定IN参数。此字符充当要传递给该存储过程的参数值的占位符。可以使用SQLServerPreparedStatement类的setter方法之一为参数指定值。可使用的setter方法由IN参数的数据类型决定。向setter
5、方法传递值时,不仅需要指定要在参数中使用的实际值,还必须指定参数在存储过程中的序数位置。例如,如果存储过程包含单个IN参数,则其序数值为1。如果存储过程包含两个参数,则第一个序数值为1,第二个序数值为2。作为如何调用包含IN参数的存储过程的实例,使用SQLServer2005AdventureWorks示例数据库中的uspGetEmployeeManagers存储过程。此存储过程接受名为EmployeeID的单个输入参数(它是一个整数值),然后基于指定的EmployeeID返回雇员及其经理的递归列表。下面是调用此存储过程的Java
6、代码:Javacode:PreparedStatementpstmt=con.prepareStatement("{calldbo.uspGetEmployeeManagers(?)}");pstmt.setInt(1,50);ResultSetrs=pstmt.executeQuery();while(rs.next()){System.out.println("EMPLOYEE:");System.out.println(rs.getString("LastName")+","+rs.getString("FirstName"
7、));System.out.println("MANAGER:");System.out.println(rs.getString("ManagerLastName")+","+rs.getString("ManagerFirstName"));System.out.println();}3使用带有输出参数的存储过程使用JDBC驱动程序调用此类存储过程时,必须结合SQLServerConnection类的prepareCall方法使用callSQL转义序列。带有OUT参数的call转义序列的语法如下所示:{callprocedur
8、e-name[([parameter][,[parameter]]...)]}构造call转义序列时,请使用?(问号)字符来指定OUT参数。此字符充当要从该存储过程返回的参数值的占位符。要为OUT参数指定值,必须在运行存储过程前使用SQLServe
此文档下载收益归作者所有