下面這段簡單代碼演示如何將數據存入到數據庫中,然后再用游標對象瀏覽全部數據。
//注意,下面的程序的忽略了對異常處理,寫入數據初始化等等一些代碼,請在適當修改后再編
//譯運行它
Db dbFile = null;
//生成Db對象
dbFile = new Db(null, 0);
//用BTree方式打開數據庫,庫文件是在c:/temp下的mydata.db文件,表名是employee
//如果數據庫不存在,則自動生成一個新的數據庫。
dbFile.open(null,"c:\\temp\\mydata.db","employee",Db.DB_BTREE,
Db.DB_CREATE,0);
Dbt key = new Dbt();
Dbt data = new Dbt();
//向庫文件中插入一條數據,如果已經存在,打印出錯信息
if (dbFile.put(null,key, data, Db.DB_APPEND) == Db.DB_KEYEXIST) {
System.out.println("Key already exists.");
}
//關閉數據文件
dbFile.close(0);
//重新打開數據文件
dbFile = new Db(null, 0);
dbFile.open(null, "c:\\temp\\mydata.db", "employee", Db.DB_UNKNOWN,
0, 0644);
// 聲明一個數據庫游標Dbc對象iterator
Dbc iterator = dbFile.cursor(null, 0);
// 遍歷整個表
Dbt key = new Dbt();
while (iterator.get(key, data, Db.DB_NEXT) == 0)
{
System.out.println("reading");
}
//關閉游標和數據文件
iterator.close();
dbFile.close(0);
在運行Berkeley DB的程序時勿必在系統環境變量PATH中設置libdb41.dll和 libdb_java41.dll所在的路徑。
4. Berkeley DB的存儲模式
Berkeley DB提供了四種存儲數據的模式:Btree,Hash,Queue和Recno。在打開數據庫的時候要指定一種存儲模式,比如上例中open()方法中的參數Db.DB_BTREE就是指定以Btree模式打開數據庫。
Btree模式是以排序的二叉樹的方式存儲,Hash是以線性哈希表的方式存儲。Queue用邏輯記錄號做為鍵值,以定長的數據為記錄值。Recno方式也以邏輯記錄號做為鍵值,但可以保存定長或變長的記錄值。這里提到的邏輯記錄號有兩種,可變的和固定的?勺冞壿嬘涗浱枙鶕䲠祿涗浀脑黾优c刪除做相應的變化。比如在數據庫中共有100條記錄,如果刪除第80條記錄,那么第81條記錄的邏輯記錄號會自動變成80,以此類推,第100條記錄邏輯記錄號會變成99。固定的邏輯記錄號則無論數據庫如何操作都不會有變化。Queue模式下,邏輯記錄號只能是固定方式。
Recno模式則可通過配置來選擇是采用那種類型的記錄號作為鍵值。Btree模式也可以通過設置,將可變的邏輯記錄號做為鍵值。
文章來源于領測軟件測試網 http://www.kjueaiud.com/