oracle OCCI程式設計

2021-07-05 00:11:57 字數 2976 閱讀 1664

1. 建立occi環境變數

environment *env = environment::createenvironment();
environment物件的建立必須放在第一位,而且也必須是最後乙個被終止

2. 終止occi環境變數

environment

::terminateenvironment(env);

3. 連線資料庫

connection *conn =env->createconnection(usename,password,[connectionstring]);
connectstingr是資料庫的連線串 (192.168.60.84:1521/orcl)

4. 斷開資料庫

env->terminateconnection(conn);
5. 建立連線池

資料庫的連線必須要能被許多執行緒所使用,如果為每個執行緒都開乙個資料庫連線的話,當數量一大效率會明顯的降低,所以我們通過建立連線池來處理這樣的情況

connectionpool  *connpool= env->createconnectionpool(

const

string &poolusename,

const

string &poolpassword,

const

string &connectstring,

unsigned

int minconn,

unsigned

int maxconn,

unsigned

int incrconn);

poolusename 是連線池的使用者名稱

poolpassword 是連線資料庫的密碼

connectstring 是資料庫連線串

minconn 是最小連線數

maxconn 是最大連線數

incrconn 是指所有已連線數處於繁忙中且小於最大連線數時,每次增加的連線數

6. 斷開連線池

env->terminateconnectpool(connpoll);
7. 建立statement物件

statement類包含了執行sql語句的所有方法,是對資料庫操作的具體實現

statement *stmt =conn->createstatement();
createstatement()函式可以帶引數或不帶引數,如果帶引數的話,引數必須是乙個sql語句;如果沒有帶引數,則在後面必須用 statement類下setsql()函式為statement物件賦乙個sql語句

8. 終止statement物件

conn->terminatestatement(stmt);
9. 執行sql語句

stmt->execute(); 執行所有非特殊宣告的sql語句

stmt->executeupdate(); 執行所有ddl和dml(一條記錄)的sql語句

stmt->executequrey(); 執行所有查詢sql語句

stmt->executearrayupdate(); 執行多記錄的dml的sql語句

10. 執行非查詢語句

//準備sql語句

stmt->setsql(string

&sql);

//繫結輸入引數值

stmt->setstring(1, 'zhangsan'); 指把zhangsan賦值給第乙個引數,引數型別為字串型

stmt->setint(2, 1009); 指把1009賦值給第二個引數,引數型別為整型

//執行

stmt->executeupdate();

11. 執行查詢語句

//同上

//執行

resultset

*rs = stmt->executequery();

//定義輸出變數

//處理資料

rs->next(unsignedint numrows); 其中numrows為批量處理的記錄行數

stmt->getint(paramindex); 獲取整型引數值,其中paramindex為引數所在的位置

stmt->getstring(paramindex); 獲取字元型引數值其中paramindex為引數所在的位置

12. 事務提交

手動提交:

connection::commit();

connection::rollback();

自動提交:

statement::setautocommit(true);
13. 例子

#include 

#include

using

namespace

std;

using

namespace oracle::occi;

int main()

catch(sqlexception e)

environment::terminateenvironment(env);

cout

<<"end!"

0;}

參考文件:

程式設計,還是程式設計

喜歡程式設計,雖然水平一般,但還是執著地學習與程式設計有關的知識。中間因為工作關係與程式設計遠離了一段時間,現在又重拾起來,細想起來還是因為喜歡吧。喜歡程式軟體的思想和原理,喜歡程式 的魅力和成就感。程式設計軟體的思想是最值得學習的,一直認為思想決定行動,思想改變世界。每種軟體的流行和受人追捧,無不...

少兒程式設計程式設計

機械人比賽,聽上去讓人有一種高大上的科技感,沒錯,在大多數人眼裡,玩機械人那是科學家做的事情,不過隨著機械人教育的普及,越來越多的孩子也能夠駕馭這高大上的機械人。格物斯坦小坦克告訴你原因,這是歸結於孩子對於程式設計課程的學習,學會對機械人進行程式設計了,自然就能玩轉機械人啦。參加機械人比賽的意義遠遠...

LINUX程式設計 socket程式設計

什麼是套接字 套接字是一種通訊過程,它使客戶 伺服器系統的開發工作既可以在本地單機上進行,也可以跨網路進行。套接字建立過程 1,建立乙個套接字,這是分配給該伺服器程序的乙個作業系統資源,套接字由伺服器通過系統呼叫socket建立出來的,所以其它程序將不能對它進行訪問。2,給套接字起個名字,用系統呼叫...