Java中调用Oracle中的存储过程的单元测试代码
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();
}
}
總結
以上是生活随笔為你收集整理的Java中调用Oracle中的存储过程的单元测试代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卖牛肉丸顺带什么货卖比较好
- 下一篇: 为什么喝苏打水?