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,給套接字起個名字,用系統呼叫...