程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> ORACLE_JDBC操作指令和代碼例子

ORACLE_JDBC操作指令和代碼例子

編輯:Oracle教程

ORACLE_JDBC操作指令和代碼例子


JDBC :    // JDBC基礎操作步驟 :          1 加載驅動         2 獲取鏈接對象         3 鏈接         4 傳送數據,數據庫處理,接受數據結果集         5 處理結果集         6 關閉資源   //增 :           1 加載驅動 三種方式             // 第一種             Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();             //第二種             Class.forName("oracle.jdbc.driver.OracleDriver");             //第三種             new oracle.jdbc.driver.OracleDriver();     2 鏈接數據庫             //2 鏈接數據庫             Connection conn = DriverManager.getConnection("全路徑","用戶名","密碼");             Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "system", "root");     3 創建語句對象             //3 創建語句對象             Statement stmt = conn.createStatement();             ResultSet rs = stmt.executeQuery("select * from c##scott.emp");//需要查詢的表     4 循環獲取結果     next();//返回值是boolean true/false  是問下一位還有沒有元素,如果有就返回true,否則返回false             while (rs.next()) {//判斷下一位還有沒有值     5 在循環中吧數據類型轉換 得到自己想要的數據類型(java對應的數據類型),可以隨意轉換,只要不丟失精度就行                 System.out.print(rs.getString("empno")+"  ");//rs.getIn("empno");也行,因為emono用的 number 類型                 System.out.print(rs.getString("ename")+"  ");                 System.out.println(rs.getString("job")+"  ");             }     6 關閉資源     close();//關閉資源             rs.close();             stmt.close();             conn.close();   executeQuery :               executeQuery();//查詢語句  返回值用ResultSet類型接收 獲取之後是個數組,數組中每個元素都是表的一行的對象         Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "system", "root");             Statement stmt = conn.createStatement();//創建語句對象             ResultSet rs = stmt.executeQuery("select * from c##scott.emp");//需要查詢的表  需要執行的語句  返回值類型是ResultSet類型   next :            next();//返回值是boolean true/false  是問下一位還有沒有元素,如果有就返回true,否則返回false         Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "system", "root");             Statement stmt = conn.createStatement();//創建語句對象             ResultSet rs = stmt.executeQuery("select * from c##scott.emp");// 需要查詢的表  需要執行的語句  返回值類型是ResultSet類型  獲取之後相當於是個數組  每個數組的元素都是一行的對象             rs.next();//獲取下一位元素(行)   getString :  statement.executeUpdate(sql);         getString();//獲得字符串   executeUpdate :            executeUpdate(" ");//把字符串指令執行  添加insert into...         如 : String sql = "insert into c##scott.a_tab values(123,'xiaomei','beijing~')";         statement.executeUpdate(sql);//就會把添加指令 在結果集中修改  只是結果集   getInt :            getInt();//獲得整型值   executeUpdate :            executeUpdate();         把語句插入到指定的表中         String sql = "insert into c##scott.a_tab values(123,'xiaomei','beijing~')";         statement.executeUpdate(sql);   DriverManager_getConnection :        DriverManager.getConnection();//鏈接數據庫  是Connection類型     如 : //Connection conn = DriverManager.getConnection(全路徑,用戶名,密碼);         Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl", "system", "root");   createStatement :                //沒有參數的         createStatement();//創建語句對象 用Connection類型調用  返回Statement類型接收         如 :              Statement stmt = conn.createStatement();             //有參數的         createStatement(int resultSetType,int resultSetConcurrency);         //參數1         resultSetType - 結果集類型 :              它是 ResultSet.TYPE_FORWARD_ONLY,                  ResultSet.TYPE_SCROLL_INSENSITIVE//如果寫了這個就可以使用 ResultSet裡面的所有方法               或 ResultSet.TYPE_SCROLL_SENSITIVE 之一         //參數2         resultSetConcurrency - 並發類型 ;             它是 ResultSet.CONCUR_READ_ONLY //查詢(查)               或 ResultSet.CONCUR_UPDATABLE 之一 //添加/更改/刪除 (增/刪/改)                  createStatement(參數1,參數2);//如果不寫參數1 就只能調用ResultSet的next()方法,如果寫了,就都能調用了   PreparedStatement :        PreparedStatement s = conn.PreparedStatement("insert into c##scott.a_tab values(?,?,?)");//預先准備好字符串,values值用?代替 因為我們還不知道裡面是什麼類型的情況下          要想改變結果集,要執行語句把,這個的執行語句是execute();     execute :            s.execute();//就行了 就執行了  每個創建語句對象的執行方法不一樣       setInt :            setInt();//設置上面的問號,整型值             s.setInt(1,11);//前面 1 代表第一個問號,後面 11,代表要添加的值     setString :            setString();//設置上面的問號,字符串             s.setString(2,"sad");//前面 2 代表第二個問號,後面"sad",代表要添加的值       parseInt :        parseInt();//是Integer的方法(int的封裝類型),是把純數字的字符串,轉換為int型     int i = Integer.parseInt("123");//轉換為123   addBatch :        addBatch();//多條語句添加         如 :             s.setInt(1,123);             s.setString(2, "234");             s.setString(3, "456");             s.addBatch();//這算一條             s.setInt(1,123);             s.setString(2, "234");             s.setString(3, "456");             s.addBatch();//到這是兩條         //上面只是弄好字符串和指令了 但是沒有執行吧         //addBatch()多條語句執行,要用executeBatch()         executeBatch :              s.executeBatch();//多條語句添加執行   commit :            commit();//強制提交         Connection conn = DriverManager.getConnection(    "jdbc:oracle:thin:@127.0.0.1:1521:orcl", "system", "root");//鏈接數據庫         conn.commit();//就是強制提交   setAutoCommit :            setAutoCommit();//設置自動提交(沒輸入一次指令,提交一次),  true/false         conn.setAutoCommit(false);//設置不自動提交         conn.setAutoCommit(true);//設置自動提交   savepoint :        //添加設置回滾點     savepoint a;//設置回滾點 回滾點的名字叫 a   rollback_to :        //回滾到回滾點之前的操作,回滾點之後的操作都等於沒有操作     rollback to a(回滾點名);//回滾到 a 點   rollback :        rollback();//回滾,如果沒有設置回滾點,就會回滾到上次提交的地方 並把所有回滾點都取消      conn.rollback();//回滾   ResultSet_Li_Mian_De_Fang_Fa :   //查 :  修改的只是結果集           ResultSet rs = stmt.executeQuery("select * from c##scott.a_tab");     next :          next();//返回值是boolean true/false  是問下一位還有沒有元素,如果有就返回true,否則返回false         rs.next();//光標指向下一位       last :           last();//指向最後一位(最後一列) 指針在最後一列上         rs.last();//把光標指向rs結果集的最後一位(最後一列)       isLast :           isLast();//判斷當前光標指向的位置是否為最後一位,返回值為boolean布爾型,true/false         rs.isLast();//判斷當前光標指向的是不是rs結果集的最後一位       absolute :       absolute();//把光標指向指定的位置     rs.absolute(3);//把光標指向rs結果集的第三位元素              previous :        previous();//把光標指向當前光標的前一個位置     //上面那個absolute(3);不是把光標指向了第三位了嗎     rs.previous();//那麼現在就是第二位, 就是把當前光標向上移動一位   //增 :        moveToInsertRow :            moveToInsertRow();//一個緩沖區,可以認為位於結果集最後一行的下面(也可以說是在結果集的最下面新建一個空行) 當有緩沖區的時候,光標不管指向哪裡,默認操作都是這個緩沖區,一直到把這個緩沖區添加到結果集和數據庫中         rs.moveToInsertRow();//在rs結果集的最後一行,新建一個空行       updateInt :            updateInt();//添加 列(number類型) 值         rs.updateInt(1,9999);//往第一列(第一個字段),添加值為9999         或者是 :              rs.updateInt("ID",9999);//或者是通過指定的列,添加值       updateString :            updateString();//添加 (或更改)列(varchar2類型) 值         rs.updateString(2, "youname");//第二列(第二個字段),添加值為"youname"         或者是 :              rs.updateString("ENAME", "youname");//通過指定的列,添加值     insertRow :            insertRow();//把以上添加的新行和裡面的內容,添加到結果集中,也添加到數據庫中         rs.insertRow();//把上面設置的這一個新行,添加到結果集和數據庫中       moveToCurrentRow :            moveToCurrentRow();//把光標移動到新建的行         rs.moveToCurrentRow();//在rs結果集中,把光標移動到新建的行       deleteRow :            deleteRow();//刪除當前光標指向的行,結果集和數據庫都刪         rs.deleteRow();//刪除rs結果集中和數據庫中,當前光標指向的行   //改 :        updateString :            updateString();////更改內存中數據集中的數據         rs.updateString("hello", "hellonimei");//更改內存中數據集中的數據(列為hello,值為hellonimei)       updateRow :            updateRow();//把更改的數據更新到數據庫中         rs.updateRow();//把更改更新到數據庫中,是數據庫哦   close :        close();//關閉資源 一般都是從下往上關閉         如 : 打開資源的時候,先打開conn然後是stmt然後是rs             關閉的時候就是先關閉rs在關閉stmt,在關閉conn         // 1 驅動對象         new oracle.jdbc.driver.OracleDriver();         // 2 連接對象         Connection conn = DriverManager.getConnection(                 "jdbc:oracle:thin:@127.0.0.1:1521:orcl", "c##scott", "root");         // 3 傳輸對象         Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);//並發可更新,和前面對比         // 4 結果集對象         ResultSet rs = stmt.executeQuery("select * from emp");         rs.close();         stmt.close();         conn.close();

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved