Berikut ini sharing pengalaman saya menggunakan OCCI ini di pekerjaan yang sedang saya kerjakan.
Pola umum program:
Environment *env = Environment::createEnvironment(Environment::OBJECT);
try {
Connection *con = env->createConnection(userName, password, connectString);
Statement *stmt = con->createStatement(query);
ResultSet *rs = stmt->executeQuery();
...
stmt->closeResultSet(rs);
con->terminateStatement(stmt);
env->terminateConnection(con);
}
catch (SQLException &e) {
cerr << "ERROR" << endl;
cerr << e.getErrorCode() << endl;
cerr << e.getMessage() << endl;
}
Potongan kode diatas merupakan pola umum untuk melakukan query ke database Oracle.
userName
, password
, connectString
merupakan variabel bertipe string yang isinya disesuaikan dengan informasi akses pengguna ke database yang hendak diakses. query
merupakan variabel string yang berisi query yang hendak dijalankan terhadap database yang sedang diakses.Untuk mempermudah penggunaan, saya membuat class sendiri untuk membungkus pemanggilan fungsi2 OCCI. Pola class yang saya gunakan :
class myocciclass
{
private:
Environment *env;
Connection *conn;
Statement *stmt;
//properties lain
...
//copy konstruktor
myocciclass(const myocciclass&);
//assignment
myocciclass& operator= (const myocciclass&);
public:
//konstruktor
inline myocciclass(const string& user, const string& passwd, const string& db);
//destruktor
inline ~myocciclass();
//method lain
...
};
//konstruktor
inline myocciclass::myocciclass(const string& user, const string& passwd, const string& db) {
this->env = Environment::createEnvironment (Environment::DEFAULT);
this->conn = env->createConnection (user, passwd, db);
this->stmt = conn->createStatement();
}
//destruktor
inline myocciclass::~myocciclass() {
this->conn->terminateStatement (this->stmt);
this->env->terminateConnection (this->conn);
Environment::terminateEnvironment (this->env);
}
Class diatas dapat ditambahkan dengan properties dan method lain yang dibutuhkan. Dengan menggunakan class seperti ini, pengaksesan database akan lebih mudah, karena di program utama, cukup melakukan instantiasi object dari class
myocciclass
:
myocciclass *moc = new myocciclass (userName, password, db);
Selanjutnya tinggal memanggil mothod2 pada object
moc
yang telah didefinisikan. Program utama tidak perlu melakukan inisialisasi maupun menutup koneksi ke database Oracle, karena hal itu telah ditangani oleh class myocciclass
.Selamat memprogram menggunakan OCCI...
0 comments:
Post a Comment