没有合适的资源?快使用搜索试试~ 我知道了~
JAVA调用存储过程.txt
需积分: 9 2 下载量 61 浏览量
2011-09-30
21:31:03
上传
评论
收藏 9KB TXT 举报
温馨提示
试读
7页
JAVA调用存储过程.txt JAVA调用存储过程.txt
资源推荐
资源详情
资源评论
Java调用SQL语法 Server的存储过程详解
1应用不带参数的存储过程
应用 JDBC 驱动程式调用不带参数的存储过程时,必需应用 call SQL语法 转义序列。不带参数的 call 转义序列的句子语法如下所示:
以下是引用片段:
{call procedure-name}
作为举例,在 SQL语法 Server 二零零五 AdventureWorks 示例数据库中创建以下存储过程:
以下是引用片段:
CREATE PROCEDURE ContactFormalNames
AS
BEGIN
SELECT TOP 10 Title + ' ' + FirstName + ' ' + LastName AS FormalName
FROM Person.Contact
END
此存储过程返回单个结果集,其中包含一列数据(由 Person.Contact 表中前十个请致电的称呼、名字和姓氏组成)。
在下面的举例中,将向此参数传递 AdventureWorks 示例数据库的打开连接,然后应用 executeQuery 技巧调用 ContactFormalNames 存储过程。
以下是引用片段:
public static void executeSprocNoParams(Connection con) ...{
try ...{
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("{call dbo.ContactFormalNames}");
1应用不带参数的存储过程
应用 JDBC 驱动程式调用不带参数的存储过程时,必需应用 call SQL语法 转义序列。不带参数的 call 转义序列的句子语法如下所示:
以下是引用片段:
{call procedure-name}
作为举例,在 SQL语法 Server 二零零五 AdventureWorks 示例数据库中创建以下存储过程:
以下是引用片段:
CREATE PROCEDURE ContactFormalNames
AS
BEGIN
SELECT TOP 10 Title + ' ' + FirstName + ' ' + LastName AS FormalName
FROM Person.Contact
END
此存储过程返回单个结果集,其中包含一列数据(由 Person.Contact 表中前十个请致电的称呼、名字和姓氏组成)。
在下面的举例中,将向此参数传递 AdventureWorks 示例数据库的打开连接,然后应用 executeQuery 技巧调用 ContactFormalNames 存储过程。
以下是引用片段:
public static void executeSprocNoParams(Connection con) ...{
try ...{
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("{call dbo.ContactFormalNames}");
while (rs.next()) ...{
System.out.println(rs.getString("FormalName"));
}
rs.close();
stmt.close();
}
catch (Exception e) ...{
e.printStackTrace();
}
}
2应用带有输入参数的存储过程
应用 JDBC 驱动程式调用带参数的存储过程时,必需结合 SQL语法ServerConnection 类的 prepareCall 技巧应用 call SQL语法 转义序列。带有 IN 参数的 call 转义序列的句子语法如下所示:
以下是引用片段:
{call procedure-name[([参数][,[参数]]...)]}
构造 call 转义序列时,请应用 ?(如何)char来指定 IN 参数。此char充当要传递给该存储过程的参数值的占位符。应用 SQL语法ServerPreparedStatement 类的 setter 技巧之一为参数指定值。可应用的 setter 技巧由 IN 参数的数据类别决定。
向 setter 技巧传递值时,不仅需求指定要在参数中应用的实际值,还必需指定参数在存储过程中的序数位置。例如,假如存储过程包含单个 IN 参数,则其序数值为 1。假如存储过程包含两个参数,则第一个的序数值为 1,第二个序数值为 2。
作为如何调用包含 IN 参数的存储过程的举例,应用 SQL语法 Server 二零零五 AdventureWorks 示例数据库中的 uspEmployeeManagers 存储过程。此存储过程接受名为 EmployeeID 的单个输入参数(它是一个的整数值),然后基于指定的 EmployeeID 返回受雇及其经理的递归列表。下面是调用此存储过程的 Java 代码:
以下是引用片段:
public static void executeSprocInParams(Connection con) ...{
try ...{
System.out.println(rs.getString("FormalName"));
}
rs.close();
stmt.close();
}
catch (Exception e) ...{
e.printStackTrace();
}
}
2应用带有输入参数的存储过程
应用 JDBC 驱动程式调用带参数的存储过程时,必需结合 SQL语法ServerConnection 类的 prepareCall 技巧应用 call SQL语法 转义序列。带有 IN 参数的 call 转义序列的句子语法如下所示:
以下是引用片段:
{call procedure-name[([参数][,[参数]]...)]}
构造 call 转义序列时,请应用 ?(如何)char来指定 IN 参数。此char充当要传递给该存储过程的参数值的占位符。应用 SQL语法ServerPreparedStatement 类的 setter 技巧之一为参数指定值。可应用的 setter 技巧由 IN 参数的数据类别决定。
向 setter 技巧传递值时,不仅需求指定要在参数中应用的实际值,还必需指定参数在存储过程中的序数位置。例如,假如存储过程包含单个 IN 参数,则其序数值为 1。假如存储过程包含两个参数,则第一个的序数值为 1,第二个序数值为 2。
作为如何调用包含 IN 参数的存储过程的举例,应用 SQL语法 Server 二零零五 AdventureWorks 示例数据库中的 uspEmployeeManagers 存储过程。此存储过程接受名为 EmployeeID 的单个输入参数(它是一个的整数值),然后基于指定的 EmployeeID 返回受雇及其经理的递归列表。下面是调用此存储过程的 Java 代码:
以下是引用片段:
public static void executeSprocInParams(Connection con) ...{
try ...{
剩余6页未读,继续阅读
资源评论
弓永峰
- 粉丝: 101
- 资源: 40
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功