java调用存储过程小结

java调用存储过程小结

ID:35294614

大小:53.50 KB

页数:8页

时间:2019-03-23

java调用存储过程小结_第1页
java调用存储过程小结_第2页
java调用存储过程小结_第3页
java调用存储过程小结_第4页
java调用存储过程小结_第5页
资源描述:

《java调用存储过程小结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、学生在学习jdbc的时候,会问到怎么调用存储过程,现在将java调用oracle存储过程的示例总结如下。(关于调用sqlserver的存储过程将在下次进行小结请关注)一:无返回值的存储过程存储过程为:createorreplaceprocedureadddept(deptnonumber,dnamevarchar2,locvarchar2)asbegininsertintodeptvalues(deptno,dname,loc);end;然后呢,在java里调用时就用下面的代码:publicclassTestProcedure{Connectioncon

2、n=null;CallableStatementcstmt=null;PreparedStatementpstmt=null;Stringurl="jdbc:oracle:thin:@localhost:1521:mydb";Stringdriver="oracle.jdbc.driver.OracleDriver";Stringname="";publicTestProcedure(){try{Class.forName(driver);conn=DriverManager.getConnection(url,"scott","tiger");cstm

3、t=conn.prepareCall("{calladddept(,,)}");cstmt.setInt(1,13);cstmt.setString(2,"间谍部2");cstmt.setString(3,"ningbo2");cstmt.executeUpdate();System.out.println("success");}catch(Exceptione){e.printStackTrace();}finally{cstmt.close();conn.close();}}}dept表为oracle数据库方案scott中的一个表二:有返回值的存储

4、过程(非列表)存储过程为:CREATEORREPLACEPROCEDURETESTB(PARA1INVARCHAR2,PARA2OUTVARCHAR2)ASBEGINSELECTINTOPARA2FROMTESTTBWHEREI_ID=PARA1;ENDTESTB;在java里调用时就用下面的代码:packagecom.hyq.src;publicclassTestProcedureTWO{publicTestProcedureTWO(){}publicstaticvoidmain(String[]args){Stringdriver="oracle.j

5、dbc.driver.OracleDriver";StringstrUrl="jdbc:oracle:thin:@127.0.0.1:1521:hyq";Statementstmt=null;ResultSetrs=null;Connectionconn=null;try{Class.forName(driver);conn=DriverManager.getConnection(strUrl,"hyq","hyq");CallableStatementproc=null;proc=conn.prepareCall("{callHYQ.TESTB(,)}

6、");proc.setString(1,"100");proc.registerOutParameter(2,Types.VARCHAR);proc.execute();StringtestPrint=proc.getString(2);System.out.println("=testPrint=is="+testPrint);}catch(SQLExceptionex2){ex2.printStackTrace();}catch(Exceptionex2){ex2.printStackTrace();}finally{try{if(rs!=null)

7、{rs.close();if(stmt!=null){stmt.close();}if(conn!=null){conn.close();}}}catch(SQLExceptionex1){}}}}}注意,这里的proc.getString(2)中的数值2并非任意的,而是和存储过程中的out列对应的,如果out是在第一个位置,那就是proc.getString(1),如果是第三个位置,就是proc.getString(3),当然也可以同时有多个返回值,那就是再多加几个out参数了。三:返回列表由于oracle存储过程没有返回值,它的所有返回值都是通过ou

8、t参数来替代的,列表同样也不例外,但由于是集合,所以不能用一般的参数,必须要用p

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。