易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
在Java语言中调用存储过程
首先一定要连接数据库啊
private
static
Connection
conn;
static
{
//第一步:加载驱动
try {
Class.forName(
"Oracle.jdbc.driver.OracleDriver"
);
//得到连接对象 conn=DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:orcl"
,
"scott"
,
"scott"
);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
实例一:
【
create
or
replace
procedure
selectEmp(emp_no
in
number,ename
out
varchar2,job
out
varchar2,sal
out
number,deptno
out
number)
is
begin
select
ename,job,sal,deptno
into
ename,job,sal,deptno
from
emp
where
empno=emp_no;
end
selectEmp;
】
//调用存储过程
public
static
void
procedure
() throws SQLException{
//创建CallableStatement 参数
in
out
通过占位符传值
CallableStatement cas=conn.prepareCall(
"{call selectEmp(?,?,?,?,?)}"
);
//从1开始
int
index
= 1;
//为占位符赋值
cas.setInt(
index
++, 7369);//赋值的是输入参数
//输出参数
cas.registerOutParameter(
index
++, oracle.jdbc.OracleTypes.
VARCHAR
);
cas.registerOutParameter(
index
++, oracle.jdbc.OracleTypes.
VARCHAR
);
cas.registerOutParameter(
index
++, oracle.jdbc.OracleTypes.NUMBER);
cas.registerOutParameter(
index
++, oracle.jdbc.OracleTypes.NUMBER);
//根据传递的参数值执行操作 如果第一个结果是 ResultSet 对象,则返回
true
;如果第一个结果是更新计数或者没有结果,则返回
false
boolean flag=cas.
execute
();
System.
out
.println(flag);
if(!flag){//执行成功了
String ename=cas.getString(2);
String job=cas.getString(3);
int
sal=cas.getInt(4);
int
deptno=cas.getInt(5);
System.
out
.println(ename);
System.
out
.println(job);
System.
out
.println(sal);
System.
out
.println(deptno);
}
}
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图