Java中调用Oracle中的存储过程的单元测试代码
Oracle中的存儲(chǔ)過程:
/*
創(chuàng)建一個(gè)存儲(chǔ)函數(shù),返回指定員工的姓名,薪水和年收入
*/
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;
/
調(diào)用上面的存儲(chǔ)過程的單元測(cè)試:
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?{
//注冊(cè)驅(qū)動(dòng)
Class.forName("oracle.jdbc.OracleDriver");
//注意如果端口不是1521時(shí),這時(shí)要給他改掉。
String?url?=?"jdbc:oracle:thin:@localhost:1521:orcl";
//默認(rèn)使用的是orcale中的用戶scott
String?user?=?"scott";
//scott的用戶名和密碼是tiger
String?password?=?"tiger";
//調(diào)用存儲(chǔ)過程。
String?sql?=?"{call?queryEmpl2(?,?,?)}";
Connection?conn?=?DriverManager.getConnection(url,user,password);
CallableStatement?call?=?conn.prepareCall(sql);
//賦參數(shù)值
call.setInt(1,?7839);
//對(duì)于out參數(shù)
//下面的方法是告訴輸出的數(shù)據(jù)的參數(shù)類型,即Oracle中的varchar類型。
call.registerOutParameter(2,?oracle.jdbc.OracleTypes.VARCHAR);
call.registerOutParameter(3,?oracle.jdbc.OracleTypes.NUMBER);
//執(zhí)行
call.execute();
//取結(jié)果,獲得名字和薪水
String?name?=?call.getString(2);
double?sal?=?call.getDouble(3);
System.out.println(name?+?"?"?+?sal);
//關(guān)閉資源
call.close();
conn.close();
}
}
總結(jié)
以上是生活随笔為你收集整理的Java中调用Oracle中的存储过程的单元测试代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卖牛肉丸顺带什么货卖比较好
- 下一篇: Java操作SQL Server数据库