新聞中心
創(chuàng)建需要的測試表:createtableTest(tidvarchar2(10),tnamevarchar2(10));

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、成都做網(wǎng)站、崇州網(wǎng)絡(luò)推廣、微信平臺小程序開發(fā)、崇州網(wǎng)絡(luò)營銷、崇州企業(yè)策劃、崇州品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供崇州建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
第一種情況:無返回值.
- createorreplaceproceduretest_a(param1invarchar2,param2invarchar2)as
- begin
- insertintotestvalue(param1,param2);
- end;
Java調(diào)用代碼:
- packagecom.test;
- importjava.sql.*;
- importjava.io.*;
- importjava.sql.*;
- publicclassTestProcA
- {
- publicTestProcA(){
- }
- publicstaticvoidmain(String[]args)
- {
- ResultSetrs=null;
- Connectionconn=null;
- CallableStatementproc=null;
- try{
- Class.forName("oracle.jdbc.driver.OracleDriver");
- conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:test","test","test");
- proc=conn.prepareCall("{calltest_a(?,?)}");
- proc.setString(1,"1001");
- proc.setString(2,"TestA");
- proc.execute();
- }catch(Exceptione){
- e.printStackTrace();
- }finally{
- try{
- if(null!=rs){
- rs.close();
- if(null!=proc){
- proc.close();
- }
- if(null!=conn){
- conn.close();
- }
- }
- }catch(Exceptionex){
- }
- }
- }
- }
第二種情況:有返回值的存儲過程(返回值非列表).
存儲過程為:
- createorreplaceproceduretest_b(param1invarchar2,param2outvarchar2)
- as
- begin
- selecttnameintoparam2fromtestwheretid=param1;
- end;
Java調(diào)用代碼:
- packagecom.test;
- importjava.sql.*;
- importjava.io.*;
- importjava.sql.*;
- publicclassTestProcB
- {
- publicTestProcB(){
- }
- publicstaticvoidmain(String[]args)
- {
- Connectionconn=null;
- CallableStatementproc=null;
- try{
- Class.forName("oracle.jdbc.driver.OracleDriver");
- conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:test","test","test");
- proc=conn.prepareCall("{calltest_b(?,?)}");
- proc.setString(1,"1001");
- proc.registerOutParameter(2,Types.VARCHAR);
- proc.execute();
- System.out.println("Outputis:"+proc.getString(2));
- }catch(Exceptione){
- e.printStackTrace();
- }finally{
- try{
- if(null!=proc){
- proc.close();
- }
- if(null!=conn){
- conn.close();
- }
- }catch(Exceptionex){
- }
- }
- }
- }
第三種情況:返回列表.
由于oracle存儲過程沒有返回值,它的所有返回值都是通過out參數(shù)來替代的,列表同樣也不例外,但由于是集合,所以不能用一般的參數(shù),必須要用pagkage了.要分兩部分來寫:
- createorreplacepackagetpackageas
- typet_cursorisrefcursor;
- proceduretest_c(c_refoutt_cursor);
- end;
- createorreplacepackagebodytpackageas
- proceduretest_c(c_refoutt_cursor)is
- begin
- openc_refforselect*fromtest;
- endtest_c;
- endtpackage;
Java調(diào)用代碼:
- packagecom.test;
- importjava.sql.*;
- importjava.io.*;
- importjava.sql.*;
- publicclassTestProcB
- {
- publicTestProcB(){
- }
- publicstaticvoidmain(String[]args)
- {
- Connectionconn=null;
- CallableStatementproc=null;
- ResultSetrs=null;
- try{
- Class.forName("oracle.jdbc.driver.OracleDriver");
- conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:test","test","test");
- proc=conn.prepareCall("{?=calltpackage.test_b(?)}");
- proc.registerOutParameter(1,OracleTypes.CURSOR);
- proc.execute();
- while(rs.next()){
- System.out.println(rs.getObject(1)+"\t"+rs.getObject(2));
- }
- }catch(Exceptione){
- e.printStackTrace();
- }finally{
- try{
- if(null!=rs){
- rs.close();
- if(null!=proc){
- proc.close();
- }
- if(null!=conn){
- conn.close();
- }
- }
- }catch(Exceptionex){
- }
- }
- }
- }
Hibernate調(diào)用oracle存儲過程
- this.pnumberManager.getHibernateTemplate().execute(
- newHibernateCallback()...{
- publicObjectdoInHibernate(Sessionsession)
- throwsHibernateException,SQLException...{
- CallableStatementcs=session.connection().prepareCall("{callmodifyapppnumber_remain(?)}");
- cs.setString(1,foundationid);
- cs.execute();
- returnnull;
- }
- });
網(wǎng)頁題目:淺談Java存儲過程調(diào)用
當(dāng)前鏈接:http://fisionsoft.com.cn/article/djspggj.html


咨詢
建站咨詢
