Java中调用Oracle中的存储过程的单元测试代码
Jun 07, 2016 pm 05:17 PMOracle中的存储过程: /* 创建一个存储函数,返回指定员工的姓名,薪水和年收入 */ create or replace function queryEmp2(eno in
Oracle中的存储过程:
/*
创建一个存储函数,返回指定员工的姓名,薪水和年收入
*/
create or replace function queryEmp2(eno in number, empname out VARCHAR2,empsal out NUMBER)
--返回年收入
return NUMBER
as
begin
select ename,sal into empname, empsal from emp where empno=eno;
--返回年收入
return empsal*12 + nvl(empsal,0);
end;
/
调用上面的存储过程的单元测试:
package demo;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import org.junit.Test;
public class Demo {
@Test
public void testQueryEmpl() throws Exception {
//注册驱动
Class.forName("oracle.jdbc.OracleDriver");
//注意如果端口不是1521时,,这时要给他改掉。
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
//默认使用的是orcale中的用户scott
String user = "scott";
//scott的用户名和密码是tiger
String password = "tiger";
//调用存储过程。
String sql = "{call queryEmpl2(?,?,?)}";
Connection conn = DriverManager.getConnection(url,user,password);
CallableStatement call = conn.prepareCall(sql);
//赋参数值
call.setInt(1, 7839);
//对于out参数
//下面的方法是告诉输出的数据的参数类型,即Oracle中的varchar类型。
call.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR);
call.registerOutParameter(3, oracle.jdbc.OracleTypes.NUMBER);
//执行
call.execute();
//取结果,获得名字和薪水
String name = call.getString(2);
double sal = call.getDouble(3);
System.out.println(name + " " + sal);
//关闭资源
call.close();
conn.close();
}
}

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Reduce the use of MySQL memory in Docker

How do you alter a table in MySQL using the ALTER TABLE statement?

How to solve the problem of mysql cannot open shared library

What is SQLite? Comprehensive overview

Run MySQl in Linux (with/without podman container with phpmyadmin)

Running multiple MySQL versions on MacOS: A step-by-step guide

How do I secure MySQL against common vulnerabilities (SQL injection, brute-force attacks)?

What are some popular MySQL GUI tools (e.g., MySQL Workbench, phpMyAdmin)?
