oracle存储应用程序,oracle 应用程序调用存储函数

packagecom.founder.ec.common.lucene;importjava.sql.CallableStatement;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importoracle.jdbc.internal.OracleCallableStatement;importoracle.jdbc.internal.OracleTypes;public classReadMysql {public static Connection getConnection() throwsException {

String url= "jdbc:oracle:thin:@192.168.";

Class.forName("oracle.jdbc.driver.OracleDriver");

String userName= "";

String password= "";

Connection con=DriverManager.getConnection(url, userName, password);returncon;

}/*** CREATE PROCEDURE member_procedure_out(memberId in NUMBER,realname OUT VARCHAR2,mobile_phone OUT VARCHAR2)*/

//释放数据库资源

public static voidrelease(Connection con, CallableStatement call, ResultSet res) {if (res != null || call != null || con != null) {try{

res.close();

con.close();

call.close();

}catch(Exception e) {

e.printStackTrace();

}finally{

res= null;

call= null;

res= null;

}

}

}public static voidmain(String[] args) {/***

CREATE PACKAGE mypackage AS

TYPE empcursor is REF CURSOR ;

PROCEDURE queryEmpList(memberId in NUMBER,empList OUT empcursor);

END mypackage;*/

try{//调用存储过程,根据会员id获得会员name//testpro();//调用存储函数,根据会员id计算其年收入//testfunction();//调用包下的存储过程,游标

testCursor();

}catch(Exception e) {

e.printStackTrace();

}finally{//release(con, call, null);

}

}private static voidtestCursor() {

Connection con= null;

CallableStatement call= null;try{

String sql= "{call mypackage.queryEmpList(?,?)}";

con=getConnection();

call=con.prepareCall(sql);

call.setInt(1,7923);

call.registerOutParameter(2,OracleTypes.CURSOR);//光标

call.execute();//取出该会员的所有信息

ResultSet res = ((OracleCallableStatement) call).getCursor(2);while(res.next()){

String name=res.getString("real_name");int memberId=res.getInt("member_id");

System.out.print(name+memberId);

}

}catch(Exception e) {

e.getMessage();

}

}private static voidtestfunction() {

Connection con= null;

CallableStatement call= null;try{

String sql= "{?=call query_member(?)}";

con=getConnection();

call=con.prepareCall(sql);

call.registerOutParameter(1,OracleTypes.NUMBER);

call.setInt(2,7923);

call.execute();double sum=call.getDouble(1);

System.out.println(sum);

}catch(Exception e) {

e.getMessage();

}

}private static voidtestpro() {

Connection con= null;

CallableStatement call= null;try{

String sql= "{call member_procedure_out(?,?)}";

con=getConnection();

call=con.prepareCall(sql);

call.setInt(1, 7923);

call.registerOutParameter(2, OracleTypes.VARCHAR);

}catch(Exception e) {

e.getMessage();

}try{

call.execute();

String realName= call.getString(2);

System.out.println(realName);

}catch(Exception e) {

e.printStackTrace();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值