程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase綜合文章 >> JDBC中調用sybase存儲過程

JDBC中調用sybase存儲過程

編輯:SyBase綜合文章

例子中用到的表t123及存儲過程test_proc的創建見博文:


package www.zjptcc.wxw.jdbctest.syb;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import Java.sql.Types;
 
public class TestSp1 {
 
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO 自動生成的方法存根
        try {
            Class.forName("com.sybase.jdbc4.jdbc.SybDriver").newInstance();
            String url = "jdbc:Sybase:Tds:localhost:5000/testdb";// 數據庫名
            Connection conn = DriverManager.getConnection(url, "mymotif","wxwpxh");
            
            /*   test_proc(@id_min int, @num_t123 int output))是將表t123中的id字段中大於等於第一個參數@id_min
             的數目統計好,放到第二個參數@num_t123(輸出參數)    */
            String procedure = "{ call test_proc(?, ?)}";
            CallableStatement statement = conn.prepareCall(procedure);
            //通過 setXXX 方法將IN參數傳給@id_min,其中第一個1是參數的索引值,第二個1是傳給@id_min的值
            statement.setInt(1, 1);
            //registerOutParameter注冊輸出參數@num_t123,輸出參數的索引值是2
            //參數的索引值是根據占位符?出現的次序從左到右由1開始計,不管其是輸入還是輸出參數
            statement.registerOutParameter(2,Types.INTEGER);
            statement.execute();
            //打印輸出參數@num_t123的值
            System.out.print(statement.getInt(2));
            
            conn.close();
        } catch (SQLException sqe) {
			System.out.println("Unexpected exception : " + sqe.toString()
					+ ", sqlstate = " + sqe.getSQLState());
			System.exit(1);
			} catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
 
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved