導航:首頁 > 編程語言 > java調用oraclepackage

java調用oraclepackage

發布時間:2023-08-05 20:39:11

A. 如果在java中調用oracle的存儲過程,需要使用哪些介面

//通過編寫的連接類創建一個連接
dbconn db = new dbconn();
Connection con1 = db.conn;
String callSQL1 = new String();
ResultSet rs1 = null;
//創建一個CallableStatement變數st1來調用存儲過程信息
CallableStatement st1 = null;
try {
st1 = con1.prepareCall("{ call p(?,?,?,?) }");

st1.setString(1, "參數1");
st1.setString(2, "參數2");
st1.setString(3, "參數3");
st1.registerOutParameter(4,Types.INTEGER); //此處4 代表第一個"?" 則表示存儲過程返回的值 這里要注意Types的類型,當需要有返回值時

st1.execute();
System.out.println(st1.getInt(4));//輸出存儲過程的返回值,當有返回值時
} catch (Exception error) {
try {
con1.rollback(); //操作不成功則回退
} catch (Exception ex9) {
ex9.printStackTrace();
}
out.print("系統出錯" + error.getMessage());
} finally {
try {
if (st1 != null) {
st1.close();
}
} catch (Exception error) {

}
db.disconnect();
}

B. java要和oracle 11g連接該如何配置oracle

這種事jdbc的形式首先添加object14.jar,讓後寫一個datebase類,很簡單如果有問題Q給我,手動教你。還有一種就是資料庫的表直接在myeclipse裡面生成欄位,我會兩種

C. JAVA調用存儲過程,Oracle自定義類型作參數怎麼寫法

1. 存儲過程以及類型定義如下:

--The array in oracle
CREATE OR REPLACE TYPE idArray AS TABLE OF VARCHAR2(20);

--package header
CREATE OR REPLACE PACKAGE Lib_Package AS
PROCEDURE Book_Check_Procere(ids IN idArray, exist OUT NUMBER);
END Lib_Package;

--package body
CREATE OR REPLACE PACKAGE BODY Lib_Package AS

PROCEDURE Book_Check_Procere( ids IN idArray, exist OUT NUMBER) AS v_Index BINARY_INTEGER; BEGIN v_Index:= ids.FIRST; LOOP SELECT COUNT(*) INTO exist FROM Lib_Duplicate WHERE status='Lent' AND book_id=ids(v_Index); EXIT WHEN v_Index=ids.LAST OR exist>0; v_Index:= ids.NEXT(v_Index); END LOOP;END Book_Check_Procere;
END Lib_Package;

2.在Java中調用上面的存儲過程
(1) 在Oracle中定義數組類型idArray (2) 在java構造數組並轉換成Oracle中定義的數組類型,調用存儲過程

/** * 當要刪除圖書時,檢查是否仍然有圖書復本處於借出狀態 */ public boolean checkBookStatus(String[] bookIds) throws DataAccessException {
boolean flag = false; Connection conn = null; OracleCallableStatement cstmt = null; ArrayDescriptor desc = null; ARRAY bookIdArray = null; int count = 0; String sql = "{call LIB_PACKAGE.Book_Check_Procere(?,?)}";
DbDriverManager dbManager = DbDriverManager.getInstance(); conn = dbManager.getConnection(Constants.DATABASE);
try { cstmt = (OracleCallableStatement) conn.prepareCall(sql);
//定義oracle中的數組類型 desc = ArrayDescriptor.createDescriptor("IDARRAY", conn); bookIdArray = new ARRAY(desc, conn, bookIds);
cstmt.setObject(1, bookIdArray, oracle.jdbc.OracleTypes.ARRAY); cstmt.registerOutParameter(2, Types.INTEGER); cstmt.execute(); count = cstmt.getInt(2);
log.info(this.getClass() + ".checkBookStatus: count = " + count);
DbOperHelp.closeStatement(this.getClass(), cstmt); DbOperHelp.closeConnection(this.getClass(), conn); } catch (SQLException e) {
log.error(this.getClass() + ".checkBookStatus-->SQLException: " + e.getMessage()); DbOperHelp.closeStatement(this.getClass(), cstmt); DbOperHelp.closeConnection(this.getClass(), conn); throw new DataAccessException( "When check the books, there is a SQLException: " + e.getMessage(), e.getCause()); }
if (count > 0) {
flag = true; }
return flag; }

D. 如何用Java實現連接Oracle

1、工作環境:myeclipse中->新建java_oracle工程->新建包com.zp->新建java_oracle_jdbc.java類
2、需要配置Oracle資料庫驅動
java工程(java_oracle)—>右鍵屬性(Properties)->Java Build Path->Libraries->Add External JARs->添加oracle安裝目錄E:\oracle\proct\10.1.0\Db_1\jdbc\lib下的「classes12.jar」文件
每次新建一個不同工程都需要配置一次
3、代碼如下:
package com.zp;
import java.sql.*;
public class java_oracle_jdbc {
public static void main(String[] args) {
// TODO Auto-generated method stub
try
{
//載入驅動
Class.forName("oracle.jdbc.driver.OracleDriver");
//得到連接
Connection ct=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:simlink", "scott", "tiger");

Statement sm=ct.createStatement();
ResultSet rs=sm.executeQuery("select * from emp");
while(rs.next())
{
System.out.println("用戶名:"+rs.getString(2));
}
rs.close();
sm.close();
ct.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}

E. 使用java連接oracle資料庫的詳細步驟,以及怎樣在oracle資料庫里建庫建表,和用戶名及許可權的設置

我先給你連接資料庫的類吧!
步驟1
package test.procere;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectOrcl {
String driver,url,user,pwd;
public ConnectOrcl(){
driver = "oracle.jdbc.driver.OracleDriver";
url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
user = "scott";
pwd = "tiger";
}
public Connection getConn(){
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url,user,pwd);
} catch (ClassNotFoundException e) {
// TODO 自動生成 catch 塊
e.printStackTrace();
} catch (SQLException e) {
// TODO 自動生成 catch 塊
e.printStackTrace();
}
return conn;
}
// 關閉與資料庫的連接的方法
public void closeConn() {
try {
if (!conn.isClosed()) {
conn.close();
}
} catch (SQLException e) {
// TODO 自動生成 catch 塊
e.printStackTrace();
}
}
public static void main(String[] args){
if(conn != null){
system.out.println("連接成功!")
}
}
}

閱讀全文

與java調用oraclepackage相關的資料

熱點內容
猥瑣貓表情教程 瀏覽:599
android音頻文件格式 瀏覽:458
漫畫臉app哪裡可以下載 瀏覽:959
購買歡樂升級歡樂豆 瀏覽:282
學習智能機器人用什麼編程最好 瀏覽:655
蘋果手機如何管控app 瀏覽:633
mn文件夾 瀏覽:590
安卓平板通用刷機包下載 瀏覽:751
安卓獲取內部存儲路徑 瀏覽:880
寫代碼兩台顯示器 瀏覽:327
unitypackage壓縮文件 瀏覽:493
奕心安卓 瀏覽:563
使用土地的有關證明文件包含哪些 瀏覽:493
數據標注哪裡可以接 瀏覽:482
在家自學編程下什麼學 瀏覽:705
最近很火的app軟體是什麼軟體 瀏覽:862
ai文字工具 瀏覽:157
蘭博玩游戲路徑怎麼選擇正確文件 瀏覽:972
淘寶直通車恢復老版本 瀏覽:510
播放草莓的圖片我都文件 瀏覽:55

友情鏈接