Home Database Mysql Tutorial Java中调用Oracle中的存储过程的单元测试代码

Java中调用Oracle中的存储过程的单元测试代码

Jun 07, 2016 pm 05:17 PM

Oracle中的存储过程: /* 创建一个存储函数,返回指定员工的姓名,薪水和年收入 */ 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();

}

}

linux

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Reduce the use of MySQL memory in Docker Reduce the use of MySQL memory in Docker Mar 04, 2025 pm 03:52 PM

Reduce the use of MySQL memory in Docker

How do you alter a table in MySQL using the ALTER TABLE statement? How do you alter a table in MySQL using the ALTER TABLE statement? Mar 19, 2025 pm 03:51 PM

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

How to solve the problem of mysql cannot open shared library How to solve the problem of mysql cannot open shared library Mar 04, 2025 pm 04:01 PM

How to solve the problem of mysql cannot open shared library

What is SQLite? Comprehensive overview What is SQLite? Comprehensive overview Mar 04, 2025 pm 03:55 PM

What is SQLite? Comprehensive overview

Run MySQl in Linux (with/without podman container with phpmyadmin) Run MySQl in Linux (with/without podman container with phpmyadmin) Mar 04, 2025 pm 03:54 PM

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

Running multiple MySQL versions on MacOS: A step-by-step guide Running multiple MySQL versions on MacOS: A step-by-step guide Mar 04, 2025 pm 03:49 PM

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

How do I secure MySQL against common vulnerabilities (SQL injection, brute-force attacks)? How do I secure MySQL against common vulnerabilities (SQL injection, brute-force attacks)? Mar 18, 2025 pm 12:00 PM

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)? What are some popular MySQL GUI tools (e.g., MySQL Workbench, phpMyAdmin)? Mar 21, 2025 pm 06:28 PM

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

See all articles