導航:首頁 > 編程語言 > java操作oracle

java操作oracle

發布時間:2022-11-14 23:30:45

A. 如何在java中使用Oracle

簡單的來說,導入oracle的jar包,寫一個類,裡面寫上連接參數,獲取連接,執行sql就行

具體參照下面引用吧,很詳細。

http://blog.csdn.net/tzs_1041218129/article/details/53899094

B. 如何在java中,實現oracle的ora

在oracle中導入需要的jar包,我們把編輯好的java類打成jar包,直接在oarcle裡面寫簡單的調用就可以了,
1、操作系統需要擁有支持loadjava命令的jdk。
2、載入jlha.jar包,到oracle資料庫中。
操作過程:在dos環境下,輸入命令: loadjava -r -f -o -user usscares/usscares@usscares jlha.jar
注意:jar包要在1.4的環境下編譯,項目右鍵 properties java compiler compoler compliance level 1.4 即可 否則報version 49 類似的錯誤

C. java 操作oracle為什麼需要setAutoCommit

為了打開事務.
這樣可以提交也可以回滾.
打開事務就是setAutoCommit參數有true和false.打開事務就是選擇false.這樣的好處在於資料庫操作出錯的時候可以選擇回滾,不至於出現數據不一致的情況.
提交就是commit
回滾就是rollback

D. 如何使用java對oracle資料庫進行增刪查改

  1. 創建資料庫了連接

  2. 編寫資料庫操作語句

  3. 獲取結果


  4. import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.List;

    import javax.servlet.jsp.jstl.sql.Result;
    import javax.servlet.jsp.jstl.sql.ResultSupport;

    public class BaseDao {
    private static String driver = "oracle.jdbc.driver.OracleDriver";
    private static String url = "jdbc:oracle:thin:@localhost:1521:orcl";
    private static String user = "s2";
    private static String pwd = "s2";

    public static Connection getcon() {
    Connection c = null;
    try {
    Class.forName(driver);
    c = DriverManager.getConnection(url, user, pwd);
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return c;
    }
    public static int executeUpdate(String sql,Object...param){
    Connection c=getcon();
    PreparedStatement p=null;

    int num=0;
    try {

    p=c.prepareStatement(sql);
    if (param!=null) {
    for (int i = 0; i < param.length; i++) {
    p.setObject(i+1, param[i]);
    }
    }
    num=p.executeUpdate();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{
    try {
    p.close();
    c.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }
    return num;
    }
    public static Result executeQuery(String sql,Object...param){
    Connection c=getcon();
    PreparedStatement p=null;
    ResultSet rs=null;
    Result r=null;
    try {
    p=c.prepareStatement(sql);
    if (param!=null) {
    for (int i = 0; i < param.length; i++) {
    p.setObject(i+1, param[i]);
    }
    }
    rs=p.executeQuery();
    r=ResultSupport.toResult(rs);
    }catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }finally{
    try {
    rs.close();
    p.close();
    c.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }
    return r;
    }
    }


E. 在java中怎麼調用oracle的存儲過程

java下實現調用oracle的存儲過程和函數
在oracle下創建一個test的賬戶,然後按一下步驟執行:
1.創建表:STOCK_PRICES

--創建表格
CREATE TABLE STOCK_PRICES(
RIC VARCHAR(6) PRIMARY KEY,
PRICE NUMBER(7,2),
UPDATED DATE );

2.插入測試數據:

--插入數據
INSERT INTO stock_prices values('1111',1.0,SYSDATE);
INSERT INTO stock_prices values('1112',2.0,SYSDATE);
INSERT INTO stock_prices values('1113',3.0,SYSDATE);
INSERT INTO stock_prices values('1114',4.0,SYSDATE);

3.建立一個返回遊標: PKG_PUB_UTILS

--建立一個返回遊標
CREATE OR REPLACE PACKAGE PKG_PUB_UTILS IS
--動態游標
TYPE REFCURSOR IS REF CURSOR;
END PKG_PUB_UTILS;

4.創建和存儲過程:P_GET_PRICE

--創建存儲過程
CREATE OR REPLACE PROCEDURE P_GET_PRICE
(
AN_O_RET_CODE OUT NUMBER,
AC_O_RET_MSG OUT VARCHAR2,
CUR_RET OUT PKG_PUB_UTILS.REFCURSOR,
AN_I_PRICE IN NUMBER
)
IS
BEGIN
AN_O_RET_CODE := 0;
AC_O_RET_MSG := '操作成功';

OPEN CUR_RET FOR
SELECT * FROM STOCK_PRICES WHERE PRICE<AN_I_PRICE;
EXCEPTION
WHEN OTHERS THEN
AN_O_RET_CODE := -1;
AC_O_RET_MSG := '錯誤代碼:' || SQLCODE || CHR(13) || '錯誤信息:' || SQLERRM;
END P_GET_PRICE;

5.創建函數:

--創建函數:F_GET_PRICE
CREATE OR REPLACE FUNCTION F_GET_PRICE(v_price IN NUMBER)
RETURN PKG_PUB_UTILS.REFCURSOR
AS
stock_cursor PKG_PUB_UTILS.REFCURSOR;
BEGIN
OPEN stock_cursor FOR
SELECT * FROM stock_prices WHERE price < v_price;
RETURN stock_cursor;

F. 如何使用java對oracle資料庫進行增刪查改

用eclipse
首先在oracle文件下找到jdbc文件,裡面的lib文件下有個class12.zip
在eclipse里新建個項目,建好後在左邊右擊那個項目圖標,選擇屬性(最下面的),裡面有個java build path,點進去,找到add external jars按鍵,點一下,把那個class12.zip載入進來,然後可以開始寫代碼了。

我的代碼如下:
import java.sql.*;

public class connect {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Connection con = null;
Statement stmt = null;
ResultSet rs = null;

try{
String url="jdbc:oracle:thin:@伺服器ip地址:埠號:資料庫名字";
String user="用戶名";
String password="密碼";
String str="INSERT INTO ZZZ_2 VALUES('041110018','JHDK')";

con = java.sql.DriverManager.getConnection(url,user,password);
// 創建狀態
stmt = con.createStatement();
// 執行SQL語句,返回結果集
//int rowcount = stmt.executeUpdate(str);
int j = stmt.executeUpdate("update ZZZ_2 set NAME='dbt' where ID=21");
int k = stmt.executeUpdate("delete from ZZZ_2 where ID=41110020");
rs = stmt.executeQuery("SELECT * FROM ZZZ_2");
// 對結果集進行處理

while (rs.next()) {
int id = rs.getInt("ID");
String name = rs.getString("NAME");
//Integer age = rs.getObject("age") == null ? null : rs.getInt("age");
System.out.println(id + ": " + name);
} }catch(SQLException e){
e.printStackTrace();}

// 釋放資源
finally{
try{
rs.close();
}catch(SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try{
stmt.close();
}catch(SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try{
con.close();
}catch(SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

}

注意,上面的ip地址什麼的要填對,ZZZ_2是我隨便建的表,你改成自己的表名就行了

G. java怎麼調用oracle的過程

java下實現調用oracle的存儲過程和函數
在oracle下創建一個test的賬戶,然後按一下步驟執行:
1.創建表:STOCK_PRICES

--創建表格
CREATE TABLE STOCK_PRICES(
RIC VARCHAR(6) PRIMARY KEY,
PRICE NUMBER(7,2),
UPDATED DATE );

2.插入測試數據:

--插入數據
INSERT INTO stock_prices values('1111',1.0,SYSDATE);
INSERT INTO stock_prices values('1112',2.0,SYSDATE);
INSERT INTO stock_prices values('1113',3.0,SYSDATE);
INSERT INTO stock_prices values('1114',4.0,SYSDATE);

3.建立一個返回遊標: PKG_PUB_UTILS

--建立一個返回遊標
CREATE OR REPLACE PACKAGE PKG_PUB_UTILS IS
--動態游標
TYPE REFCURSOR IS REF CURSOR;
END PKG_PUB_UTILS;

4.創建和存儲過程:P_GET_PRICE

--創建存儲過程
CREATE OR REPLACE PROCEDURE P_GET_PRICE
(
AN_O_RET_CODE OUT NUMBER,
AC_O_RET_MSG OUT VARCHAR2,
CUR_RET OUT PKG_PUB_UTILS.REFCURSOR,
AN_I_PRICE IN NUMBER
)
IS
BEGIN
AN_O_RET_CODE := 0;
AC_O_RET_MSG := '操作成功';

OPEN CUR_RET FOR
SELECT * FROM STOCK_PRICES WHERE PRICE<AN_I_PRICE;
EXCEPTION
WHEN OTHERS THEN
AN_O_RET_CODE := -1;
AC_O_RET_MSG := '錯誤代碼:' || SQLCODE || CHR(13) || '錯誤信息:' || SQLERRM;
END P_GET_PRICE;

5.創建函數:

--創建函數:F_GET_PRICE
CREATE OR REPLACE FUNCTION F_GET_PRICE(v_price IN NUMBER)
RETURN PKG_PUB_UTILS.REFCURSOR
AS
stock_cursor PKG_PUB_UTILS.REFCURSOR;
BEGIN
OPEN stock_cursor FOR
SELECT * FROM stock_prices WHERE price < v_price;
RETURN stock_cursor;
END;

6.JAVA調用存儲過程返回結果集
代碼示例:JDBCoracle10G_INVOKEPROCEDURE.java

import java.sql.*;
import oracle.jdbc.OracleCallableStatement;
import oracle.jdbc.OracleTypes;

/* 本例是通過調用oracle的存儲過程來返回結果集:
* oracle 9i、10G 的jdbc由1個jar包組成:classes12.zip
*/
public class JDBCoracle10G_INVOKEPROCEDURE {
Connection conn = null;
Statement statement = null;
ResultSet rs = null;
CallableStatement stmt = null;

String driver;
String url;
String user;
String pwd;
String sql;
String in_price;

public JDBCoracle10G_INVOKEPROCEDURE()
{
driver = "oracle.jdbc.driver.OracleDriver";
url = "jdbc:oracle:thin:@localhost:1521:ORCL";
// oracle 用戶
user = "test";
// oracle 密碼
pwd = "test";
init();
// mysid:必須為要連接機器的sid名稱,否則會包以下錯:
// java.sql.SQLException: Io 異常: Connection
// refused(DESCRIPTION=(TMP=)(VSNNUM=169870080)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
// 參考連接方式:
// Class.forName( "oracle.jdbc.driver.OracleDriver" );
// cn = DriverManager.getConnection(
// "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );

}

public void init() {
System.out.println("oracle jdbc test");
try {
Class.forName(driver);
System.out.println("driver is ok");
conn = DriverManager.getConnection(url, user, pwd);
System.out.println("conection is ok");
statement = conn.createStatement();
// conn.setAutoCommit(false);
// 輸入參數
in_price = "3.0";
// 調用函數
stmt = conn.prepareCall("call P_GET_PRICE(?,?,?,?)");
stmt.registerOutParameter(1, java.sql.Types.FLOAT);
stmt.registerOutParameter(2, java.sql.Types.CHAR);
stmt.registerOutParameter(3, oracle.jdbc.OracleTypes.CURSOR);
stmt.setString(4, in_price);
stmt.executeUpdate();
int retCode = stmt.getInt(1);
String retMsg = stmt.getString(2);
if (retCode == -1) { // 如果出錯時,返回錯誤信息
System.out.println("報錯!");
} else {
// 取的結果集的方式一:
rs = ((OracleCallableStatement) stmt).getCursor(3);
// 取的結果集的方式二:
// rs = (ResultSet) stmt.getObject(3);
String ric;
String price;
String updated;
// 對結果進行輸出
while (rs.next()) {
ric = rs.getString(1);
price = rs.getString(2);
updated = rs.getString(3);
System.out.println("ric:" + ric + ";-- price:" + price
+ "; --" + updated + "; ");
}
}

} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("close ");
}
}

public static void main(String args[])// 自己替換[]
{
new JDBCoracle10G_INVOKEPROCEDURE();
}
}

7.開發JAVA調用函數返回結果集
代碼示例:JDBCoracle10G_INVOKEFUNCTION.java

import java.sql.*;
import oracle.jdbc.OracleCallableStatement;
import oracle.jdbc.OracleTypes;

/*
/* 本例是通過調用oracle的函數來返回結果集:
* oracle 9i、10G 的jdbc由1個jar包組成:classes12.zip
*/
public class JDBCoracle10G_INVOKEFUNCTION {
Connection conn = null;
Statement statement = null;
ResultSet rs = null;
CallableStatement stmt = null;

String driver;
String url;
String user;
String pwd;
String sql;
String in_price;

public JDBCoracle10G_INVOKEFUNCTION()
{
driver = "oracle.jdbc.driver.OracleDriver";
url = "jdbc:oracle:thin:@localhost:1521:ORCL";
// oracle 用戶
user = "test";
// oracle 密碼
pwd = "test";
init();
// mysid:必須為要連接機器的sid名稱,否則會包以下錯:
// java.sql.SQLException: Io 異常: Connection
// refused(DESCRIPTION=(TMP=)(VSNNUM=169870080)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
// 參考連接方式:
// Class.forName( "oracle.jdbc.driver.OracleDriver" );
// cn = DriverManager.getConnection(
// "jdbc:oracle:thin:@MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );
}

public void init() {
System.out.println("oracle jdbc test");
try {
Class.forName(driver);
System.out.println("driver is ok");
conn = DriverManager.getConnection(url, user, pwd);
System.out.println("conection is ok");
statement = conn.createStatement();
// conn.setAutoCommit(false);
// 輸入參數
in_price = "5.0";
// 調用函數
stmt = conn.prepareCall("{? = call F_GET_PRICE(?)}");
// stmt.registerOutParameter(1, java.sql.Types.FLOAT);
// stmt.registerOutParameter(2, java.sql.Types.CHAR);
stmt.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR);
stmt.setString(2, in_price);
stmt.executeUpdate();
// 取的結果集的方式一:
rs = ((OracleCallableStatement) stmt).getCursor(1);
// 取的結果集的方式二:
// rs = (ResultSet) stmt.getObject(1);
String ric;
String price;
String updated;

while (rs.next()) {
ric = rs.getString(1);
price = rs.getString(2);
updated = rs.getString(3);
System.out.println("ric:" + ric + ";-- price:" + price + "; --"
+ updated + "; ");
}

} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("close ");
}
}

public static void main(String args[])// 自己替換[]
{
new JDBCoracle10G_INVOKEFUNCTION();
}
}

H. java中怎麼操作oracle資料庫

實現用java訪問oracle資料庫:
准備工作:
1.下載驅動,打開瀏覽器,搜索oracle資料庫驅動,進入下載頁面下載即可;
2.將驅動導入到項目中。
用java訪問oracle資料庫代碼實現:

1
2
3
4
5
6
7
8
9
10
11
12
13
14

try {
Class.forName("oracle.jdbc.driver.OracleDriver"); //載入驅動
//與資料庫建立連接
try {
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott"; //用戶名
String password = "tiger"; //密碼
conn=DriverManager.getConnection(url,username,password);
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();

I. 如何用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();
}
}
}

J. 淺談如何利用Java的JDBC操作Oracle資料庫

JavaJDBC中操作Oracle資料庫,經過以下幾個步驟
1.將OracleHome/jdbc/lib/目錄的所有文件添加到jre/lib/ext目錄;(配置JavaJDBC驅動)
2.創建odbc源,在控制面板=》管理工具=》數據源(odbc)中添加DSN,比如取名為OracleDSN,選擇一個Service,輸入用戶名密碼,測試連接,若通過說明成功;
3.在程序中載入jdbc驅動(下面的例子用的是JdbcOdbc驅動),建立連接,執行Query.
下面是連接OracleDSNODBCdatasource的一個類,方法Test()連接資料庫後,讀取tbljob的內容,並顯示所有記錄。


importjava.sql.*;
classOracleConnect{
publicstaticvoidTest(){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Stringurl="jdbc:odbc:OracleDSN";
Connectionconn=DriverManager.getConnection(url,"system","system_passwd");
Statementstmt=conn.createStatement();
ResultSetrset=stmt.executeQuery("select*fromtbljob;");
while(rset.next())
System.out.println(rset.getString(1)+""+rset.getString(2));
rset.close();
stmt.close();
conn.close();
}catch(Exceptione){
e.printStackTrace();
}
}
}

閱讀全文

與java操作oracle相關的資料

熱點內容
php基礎編程教程pdf 瀏覽:219
穿越之命令與征服將軍 瀏覽:351
android廣播重復 瀏覽:832
像阿里雲一樣的伺服器 瀏覽:318
水冷空調有壓縮機嗎 瀏覽:478
訪問日本伺服器可以做什麼 瀏覽:432
bytejava詳解 瀏覽:448
androidjava7 瀏覽:384
伺服器在山洞裡為什麼還有油 瀏覽:885
天天基金app在哪裡下載 瀏覽:974
伺服器軟路由怎麼做 瀏覽:291
冰箱壓縮機出口 瀏覽:227
OPT最佳頁面置換演算法 瀏覽:644
網盤忘記解壓碼怎麼辦 瀏覽:853
文件加密看不到裡面的內容 瀏覽:654
程序員腦子里都想什麼 瀏覽:434
oppp手機信任app在哪裡設置 瀏覽:189
java地址重定向 瀏覽:272
一年級下冊摘蘋果的演算法是怎樣的 瀏覽:448
程序員出軌電視劇 瀏覽:90