您的位置:首页 > 其它

jdbc调用存储过程

2017-09-07 19:48 369 查看
存储过程如下:

create or replace procedure query_procedure(v_id in person.id%type,v_name out person.name%type,v_salary out person.salary%type)
is
begin
select name,salary into v_name,v_salary from person where id=v_id;
exception
when no_data_found then
dbms_output.put_line('没有找到要查询的数据');
end;


Java代码如下:

package oiiios.com;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Types;

public class JDBC_Oracle {
public static void main(String[] args) {
ResultSet rs = null;
CallableStatement cs = null;
Connection conn = null;
try {
conn = getConnection();
String sql = "{call query_procedure(?,?,?)}";// 通过id查找姓名和薪资query_procedure存储过程名
//指定调用的存储过程
cs = conn.prepareCall(sql);
//设置存储过程的第一个参数值
cs.setInt(1, 2);//查询id=2
//注册存储过程的第二、三个参数
cs.registerOutParameter(2, Types.VARCHAR);//registerOutParameter:输出参数
cs.registerOutParameter(3, Types.VARCHAR);
//执行存储过程
cs.execute();
String name = cs.getString(2);
double salary = cs.getDouble(3);
System.out.println("姓名:" + name + "----薪资:" + salary);

} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (cs != null) {
cs.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}

}

//获得连接
public static Connection getConnection() throws Exception {
String driverName = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String username = "system";
String password = "root";
Connection conn = null;
// 1、加载驱动
Class.forName(driverName);
// 2、获取连接
conn = DriverManager.getConnection(url, username, password);
if (conn != null) {
System.out.println("连接成功");
}
return conn;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: