package com.dada.test;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
public class Service {
//测试调用oracle的函数
public int fun_add() {
System.out.print("调用到了此方法");
int flag = 0;
Connection conn = DbManager.getConnection();
ResultSet rs = null;
CallableStatement pstmt = null;
try {
//调用存储过程
pstmt = conn.prepareCall("{?=call pkg_test.fadd(?,?)}");
pstmt.registerOutParameter(1, oracle.jdbc.OracleTypes.INTEGER);
pstmt.setInt(2, 8);
pstmt.setInt(3, 9);
pstmt.execute();
flag=pstmt.getInt(1);
System.out.print("存储过程计算的结果是:"+flag);
} catch (Exception e) {
// e.printStackTrace();
} finally {
try {
DbManager.closeAll(rs, pstmt, conn);
} catch (Exception e) {
}
}
return flag;
}
//测试调用oracle的存储过程
public int pro_add() {
System.out.print("调用到了此方法");
int flag = 0;
Connection conn = DbManager.getConnection();
ResultSet rs = null;
CallableStatement pstmt = null;
try {
//调用存储过程
pstmt = conn.prepareCall("{ call pkg_test.padd(?,?,?)}");
pstmt.setInt(1, 1);
pstmt.setInt(2, 5);
pstmt.registerOutParameter(3, oracle.jdbc.OracleTypes.NUMBER);
pstmt.execute();
flag = (int) pstmt.getInt(3);
System.out.print("存储过程计算的结果是:"+flag);
} catch (Exception e) {
// e.printStackTrace();
} finally {
try {
DbManager.closeAll(rs, pstmt, conn);
} catch (Exception e) {
}
}
return flag;
}
// 测试调用oracle的存储过程
public void pro_add1() {
Connection conn = init_oracle();
ResultSet rs = null;
CallableStatement pstmt = null;
try {
// 调用存储过程-获取ResultSet值
pstmt = conn
.prepareCall("{ call pkg_query.query_repeat(?,?,?,?,?,?)}");
// query_hour (v_date varchar2,beginTime in number,endTime in
// number,mac_addr varchar2,pkg_id number,r OUT query_result)
pstmt.setString(1, "2012-11-20");
pstmt.setInt(2, 0);
pstmt.setInt(3, 20);
pstmt.setString(4, "01-20-00-00-05");
pstmt.setInt(5, 1758);
pstmt.registerOutParameter(6, oracle.jdbc.OracleTypes.CURSOR);
pstmt.executeQuery();
rs = (ResultSet) pstmt.getObject(6);
while (rs.next()) {
int dat_id = rs.getInt(1);
System.out.println(dat_id);
}
} catch (Exception e) {
// e.printStackTrace();
}
}
}