主頁 > 知識(shí)庫 > 基于Oracle的面向?qū)ο蠹夹g(shù)入門基礎(chǔ)簡(jiǎn)析開發(fā)者網(wǎng)絡(luò)Oracle

基于Oracle的面向?qū)ο蠹夹g(shù)入門基礎(chǔ)簡(jiǎn)析開發(fā)者網(wǎng)絡(luò)Oracle

熱門標(biāo)簽:語音電話機(jī)器人缺點(diǎn) 地圖標(biāo)注原件 淮安自動(dòng)外呼系統(tǒng)開發(fā) 語音電話機(jī)器人營(yíng)銷方案 廣州市400電話辦理 宜賓外呼系統(tǒng)廠家 修改高德地圖標(biāo)注 南通防封外呼系統(tǒng)運(yùn)營(yíng)商 百變地圖標(biāo)注
正在看的ORACLE教程是:基于Oracle的面向?qū)ο蠹夹g(shù)入門基礎(chǔ)簡(jiǎn)析開發(fā)者網(wǎng)絡(luò)Oracle。

一、概述

  對(duì)象是Oracle8i以上版本中的一個(gè)新的特性,對(duì)象實(shí)際是對(duì)一組數(shù)據(jù)和操作的封裝,對(duì)象的抽象就是類。在面向?qū)ο蠹夹g(shù)中,對(duì)象涉及到以下幾個(gè)重要的特性:

   封裝性

  通過對(duì)數(shù)據(jù)和操作的封裝,將用戶關(guān)心的數(shù)據(jù)和操作暴露出來作為接口,其他數(shù)據(jù)和操作則隱藏到對(duì)象內(nèi)部,這樣便于用戶使用和維護(hù)。

   繼承性

  對(duì)象具有繼承性,通過這一特性可以增強(qiáng)程序的可擴(kuò)展性,適合大型項(xiàng)目的開發(fā)。

   多態(tài)性

  同一操作在運(yùn)行時(shí)刻有不同的對(duì)象來引用,則其執(zhí)行結(jié)果是不一樣的。這一特性稱之為多態(tài)性。

  正是因?yàn)槊嫦驅(qū)ο蟮闹T多優(yōu)勢(shì),Oracle公司在8.0版本以后就加入了對(duì)這一特性的全面支持,下來的部分重點(diǎn)講述在Oracle中的面向?qū)ο蟪绦蛟O(shè)計(jì)。

  二、Oracle中的面向?qū)ο蟪绦蛟O(shè)計(jì)

  既然對(duì)象具有這么多的優(yōu)點(diǎn),那么在Oracle數(shù)據(jù)庫如何引用它呢?Oracle中的對(duì)象定義分兩步進(jìn)行:

  首先定義對(duì)象類型。定義對(duì)象類型跟定義包類型完全一樣,即分為對(duì)象類型頭(或稱為對(duì)象規(guī)范,specification)和對(duì)象類型體(body)。對(duì)象類型頭包括了對(duì)象類型的屬性和方法的聲明,而對(duì)象類型體則包含了對(duì)象類型具體的實(shí)現(xiàn)。

  例如,定義一個(gè)empObj對(duì)象類型,代碼如下:


  特別需要注意的是,如果對(duì)象沒有成員函數(shù)部分,那么此對(duì)象類型的定義只有對(duì)象類型頭部分。

  然后定義對(duì)象實(shí)例。定義了對(duì)象類型后就可以直接定義它的實(shí)例了,比如定義一個(gè)empObj實(shí)例對(duì)象,代碼如下:


  經(jīng)過這兩步之后就可以引用對(duì)象實(shí)例的屬性和方法了,引用符號(hào)為“.”,比如


  另外,在初始化無成員函數(shù)的對(duì)象時(shí)可以直接以構(gòu)造函數(shù)的形式進(jìn)行初始化,注意,這個(gè)時(shí)候不需顯式的定義構(gòu)造函數(shù)。比如,初始化上面v_empObj1對(duì)象(假設(shè)無成員函數(shù)的情況下才能進(jìn)行這種初始化操作), 代碼如下:


  由于Oracle數(shù)據(jù)庫是關(guān)系型數(shù)據(jù)庫,其存儲(chǔ)數(shù)據(jù)是以二維表的形式進(jìn)行的,而對(duì)象是對(duì)數(shù)據(jù)和操作進(jìn)行封裝的一個(gè)實(shí)體,其存儲(chǔ)信息往往是多維信息,那么對(duì)象在Oracle數(shù)據(jù)庫中的存儲(chǔ)是如何進(jìn)行的呢?(這里補(bǔ)充一點(diǎn),PL/SQL程序塊中聲明的對(duì)象是臨時(shí)對(duì)象,在超出其作用區(qū)域后系統(tǒng)將自動(dòng)收回其分配的資源,但是如果需要保存對(duì)象的信息,就必須將其存儲(chǔ)在數(shù)據(jù)庫中)

  事實(shí)上,對(duì)象在Oracle數(shù)據(jù)庫中的存儲(chǔ)形式分為兩種:

  1. 對(duì)象列。即可以將數(shù)據(jù)表中的列的數(shù)據(jù)類型定義為一個(gè)對(duì)象類型,這樣對(duì)象就可以存儲(chǔ)在數(shù)據(jù)列中了。比如定義一個(gè)表table1,其中emp列可以用來存儲(chǔ)對(duì)象。


  2. 對(duì)象行。即可以創(chuàng)建一個(gè)對(duì)象表,其中每一列就表示對(duì)象中的一個(gè)屬性,這樣一條行記錄就是一個(gè)對(duì)象了。比如定義一個(gè)emp表如下:


  這樣emp表的一個(gè)記錄就是一個(gè)empObj對(duì)象,插入一個(gè)表的操作就可以為:


  注意,這里表中列類型與對(duì)象的屬性類型應(yīng)該一一對(duì)應(yīng),另外這樣存儲(chǔ)將忽略對(duì)象的成員函數(shù)的信息。

[NextPage]

 三、對(duì)象操作與比較

  可以采用DML語句對(duì)對(duì)象進(jìn)行操作,其操作的語法跟一般的數(shù)據(jù)類型完全一樣,比如在table1表中返回對(duì)象為empObj(10002,'mike',3000)的記錄:


  如果需要進(jìn)行對(duì)象的大小比較,那么用一般的方法就很難處理,畢竟對(duì)象含有一組屬性,無法進(jìn)行組合比較。可以采用向?qū)ο蠹尤雖ap方法和order方法來解決此問題,前者是通過將對(duì)象某一屬性返回代表對(duì)象的值班來比較大小,后者是通過比較兩個(gè)對(duì)象之間某個(gè)屬性的值班來獲取對(duì)象的大小。由于兩者的相似性,這里以用途更廣的map成員函數(shù)為為例示范如下:


  這樣定義了map函數(shù)后,對(duì)empObj對(duì)象大小的比較實(shí)質(zhì)轉(zhuǎn)化為對(duì)各個(gè)對(duì)象的emp_id屬性大小的比較,在實(shí)際操作中,應(yīng)該根據(jù)實(shí)際情況來返回關(guān)心的數(shù)據(jù),以進(jìn)行對(duì)象大小比較的操作。

  四、小結(jié)

  通過前面內(nèi)容的介紹,大家應(yīng)該對(duì)Oracle數(shù)據(jù)庫的面向?qū)ο蟮奶匦杂幸粋€(gè)初步的認(rèn)識(shí),充分利用Oracle的這一特性,可以將面向?qū)ο蟮闹赜眯?,可擴(kuò)展性等優(yōu)點(diǎn)引入到數(shù)據(jù)庫中,提高了數(shù)據(jù)庫的運(yùn)行性能。 

上一頁    

您可能感興趣的文章:
  • ORACLE 查詢被鎖住的對(duì)象,并結(jié)束其會(huì)話的方法
  • 解析Oracle數(shù)據(jù)庫中的對(duì)象集合schema
  • oracle查看會(huì)話鎖定的所有對(duì)象代碼分享
  • ORACLE 常用的SQL語法和數(shù)據(jù)對(duì)象
  • Oracle使用PL/SQL操作COM對(duì)象
  • PHP 5 數(shù)據(jù)對(duì)象 (PDO) 抽象層與 Oracle
  • MS-sql 2005拒絕了對(duì)對(duì)象 ''xxx'' (數(shù)據(jù)庫 ''xxx'',架構(gòu) ''dbo'')的 SELECT 權(quán)限的解決方法
  • 重新編譯PLSQL中的無效對(duì)象或者指定的對(duì)象 的方法
  • asp sqlserver 執(zhí)行存儲(chǔ)過程返回記錄集報(bào)對(duì)象關(guān)閉時(shí)不允許操作
  • 利用函數(shù)返回oracle對(duì)象表的三種方法

標(biāo)簽:聊城 池州 襄陽 嘉峪關(guān) 南平 通化 南平 股票投資

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《基于Oracle的面向?qū)ο蠹夹g(shù)入門基礎(chǔ)簡(jiǎn)析開發(fā)者網(wǎng)絡(luò)Oracle》,本文關(guān)鍵詞  基于,Oracle,的,面向,對(duì)象,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《基于Oracle的面向?qū)ο蠹夹g(shù)入門基礎(chǔ)簡(jiǎn)析開發(fā)者網(wǎng)絡(luò)Oracle》相關(guān)的同類信息!
  • 本頁收集關(guān)于基于Oracle的面向?qū)ο蠹夹g(shù)入門基礎(chǔ)簡(jiǎn)析開發(fā)者網(wǎng)絡(luò)Oracle的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章