JDBC调用Oracle函数详解
来源:互联网 发布:手写情书软件 编辑:程序博客网 时间:2024/06/18 12:29
--在数据库中创建一个函数
create or replace function getavgsal
(
--在括号中定义入参
v_dept in number
)
--定义返回值类型为number类型,注意参数和返回值的类型不用写具体长度
return number
--下面开始声明相关变量
is
--声明变量来接收查询的结果
v_avgsal number(10);
v_cursor sys_refcursor;
begin
--将查到的结果先放到游标当中
open v_cursor for select avg(e.sal) avgsal from emp e where deptno = v_dept ;
--再将游标赋给上面声明的变量
fetch v_cursor into v_avgsal;
--关闭游标
close v_cursor;
--返回变量
return v_avgsal;
end;
****************************************函数创建结束*************************************************
package xxx
import java.sql.CallableStatement;
import java.sql.Connection;import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.internal.OracleTypes;
public class Test {
//设置数据库的链接参数;
String user = "c##scott";
String pwd = "tiger";
String driver = "oracle.jdbc.OracleDriver";
String addr = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL";
//获取connection对象;
public Connection getCon(){
Connection con = null;
try {
Class.forName(driver);
System.out.println("驱动加载成功");
} catch (ClassNotFoundException e) {
System.out.println("驱动加载失败");
}
try {
con = DriverManager.getConnection(addr, user, pwd);
System.out.println("数据库连接成功");
} catch (SQLException e) {
System.out.println("数据库连接失败");
}
return con;
}
//此处调用oracle的函数;
public void getRS() {
//首先获取到连接对象;
Connection con = getCon();
try {
//使用prepareCall方法来调用数据库函数,格式为{? = call 函数名(?,?)},
//第一个?为返回的数据,该方法返回一个CallableStatement的对象;
CallableStatement prepareCall = con.prepareCall("{? =call getavgsal(?)}");
//下面注册上面声明的?的类型,括号内的两个参数,第一个是?的顺序,第二个是数据库中规定的类型;
prepareCall.registerOutParameter(1,OracleTypes.NUMBER);
prepareCall.registerOutParameter(2,OracleTypes.NUMBER);
//为该方法的参数赋值,查找deptno为20的部门人员的平均工资;
prepareCall.setInt(2, 20);
//执行函数;
prepareCall.execute();
//获取到对应的返回值;
int rs = prepareCall.getInt(1);
System.out.println(rs);
} catch (SQLException e) {
e.printStackTrace();
}
}
@org.junit.Test
public void tets() {
getRS();
}
}
阅读全文
0 0
- JDBC调用Oracle函数详解
- jdbc中调用oracle函数
- jdbc调用oracle存储过程和存储函数
- jdbc oracle 过程调用
- Oracle内部函数调用追踪器详解
- jdbc调用oracle 存储过程
- eclipse调用jdbc连接oracle
- JDBC调用Oracle存储过程
- jdbc调用Oracle存储过程
- jdbc调用oracle存储过程
- JDBC调用存储过程详解
- JDBC调用PL/SQL函数
- JDBC调用PL/SQL函数
- JDBC:调用函数&存储过程
- JDBC连接Oracle数据库详解
- JDBC连接Oracle数据库 详解
- java jdbc调用oracle的函数或过程返回SQL语句查询的结果集
- Delphi调用 Oracle 函数
- 连接远程MySQL数据库
- DescriptionResourcePathLocationType Failure to transfer org.apache.maven.plugins:maven-surefire-
- Android8.0行为变更Google官方文档
- 1、单例模式(立即加载、延时加载)
- FTL 入门
- JDBC调用Oracle函数详解
- ftl 常用指令及语法详解
- mpi安装与配置错误记录——并行计算开端
- 第十一章 用户验证
- filter方法和find方法
- 使用spring请求头信息的获得
- 普及组初赛总结
- 一篇很全的freemarker教程(摘抄)
- 网易2018校招内推编程题 小易喜欢的数列