***\*Java程序调用存储过程\****
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了***\*Java程序调用存储过程\****,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2419字,纯文字阅读大概需要4分钟。
内容图文
![***\*Java程序调用存储过程\****](/upload/InfoBanner/zyjiaocheng/612/8bd27893f35348aaa8e29f9514363312.jpg)
*Java程序调用存储过程*
需求:如果一条语句无法实现结果集,比如需要多表查询,或者需要复杂逻辑查询,我们可以选择调用存储查询出你的结果。
分析jdk api
通过connection对象的preparecall方法可以调用存储过程
得出结论:通过connection对象调用preparecall方法传递一个转义SQL语句调用存储过程,输入参数直接调用set方法传递,输出参数需要注册后,执行存储过程,通过get方法获取,参数列表的下标是从1开始的。
存储过程和存储函数的区别:
存储过程是万能的,存储函数时必须要有返回值的,oracle官方建议我们使用存储过程
模块 java.sql
软件包 java.sql
Interface CallableStatement
All Superinterfaces:
AutoCloseable , PreparedStatement , Statement , Wrapper
public interface CallableStatement
extends PreparedStatement
用于执行SQL存储过程的接口。 JDBC API提供存储过程SQL转义语法,允许以标准方式为所有RDBMS调用存储过程。 此转义语法有一个包含结果参数的表单,而不包含结果参数的表单。 如果使用,则必须将结果参数注册为OUT参数。 其他参数可用于输入,输出或两者。 参数按编号顺序引用,第一个参数为1。
{?= call <procedure-name>[(
{call <procedure-name>[(
IN参数值是使用所设定的set从继承的方法PreparedStatement 。 必须在执行存储过程之前注册所有OUT参数的类型; 通过此处提供的get方法执行后检索它们的值。
CallableStatement可以返回一个ResultSet对象或多个ResultSet对象。 使用从Statement继承的操作处理多个ResultSet对象。
为了获得最大的可移植性,应在获取输出参数值之前处理调用的ResultSet对象和更新计数。
使用java调用存储过程
首先要引入连接oracle数据库的驱动包
使用java调用存储过程
package com.zyq.oracle;
import oracle.jdbc.OracleTypes;
import oracle.jdbc.driver.OracleDriver;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JdbcTest {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.获取数据库连接对象
String url="jdbc:oracle:thin:@localhost:1521:orcl";
String user="scott";
String password="tiger";
Connection connection = DriverManager.getConnection(url, user, password);
//3.获得语句对象
String sql="{call p_querysal_out(?,?)}";
CallableStatement call = connection.prepareCall(sql);
//4.设置输入参数
call.setInt(1,7839);
//5.注册输出参数
call.registerOutParameter(2, OracleTypes.DOUBLE);
//6.执行存储过程
call.execute();
//7.获取输出参数
double sal = call.getDouble(2);
System.out.println(sal);
//8.释放资源
call.close();
connection.close();
}
}
内容总结
以上是互联网集市为您收集整理的***\*Java程序调用存储过程\****全部内容,希望文章能够帮你解决***\*Java程序调用存储过程\****所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。