女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>嵌入式開發>嵌入式數據庫在Java中的應用解析

嵌入式數據庫在Java中的應用解析

2017-11-06 | rar | 0.3 MB | 次下載 | 1積分

資料介紹

嵌入式數據庫無需安裝,體積小巧,速度又很快,在很多場合可以替代目前流行的MySQL, SQLServer等大中型數據庫。本文介紹兩種嵌入式數據庫產品:Berkeley DB和SQLite,并著重討論它們與Java之間的接口
  通常我們采用各種數據庫產品來實現對數據的存儲、檢索等功能,例如,Oracle,SQL Server,MySQL等等。這些產品除提供基本的查詢,刪除,添加等功能外,也提供了很多高級特性,如觸發器,存儲過程,數據備份恢復,全文檢索功能等。但實際上,很多的應用,僅僅利用到了這些數據庫產品的基本特性而已。而且在一些小型應用上,或者某些特殊場合的應用,比如桌面程序,這些數據庫產品就明顯有一些臃腫。在這些情況下,嵌入式數據庫的優勢就特別明顯了。
  嵌入式數據庫無須獨立運行的數據庫引擎,它是由程序直接調用相應的API去實現對數據的存取操作。更直白的講,嵌入式數據庫是一種具備了基本數據庫特性的數據文件。嵌入式數據庫與其它數據庫產品的區別是,前者是程序驅動式, 而后者是引擎響應式。嵌入式數據庫的一個很重要的特點是它們的體積非常小,編譯后的產品也不過幾十K。這不但對桌面程序的數據存儲方案是一個很好的選擇,也使得它們可以應用到一些移動設備上。同時,很多嵌入式數據庫在性能上也優于其它數據庫,所以在高性能的應用上也常見嵌入式數據庫的身影。
  下面介紹的是兩個開放源代碼的嵌入式數據庫,Berkeley DB和SQLite。同時側重介紹如何應用Java連接這兩種嵌入式數據庫。
  一。 Berkeley DB
  1. 簡介
  Berkeley DB是一款健壯的,高速的工業級嵌入式數據庫產品,你可以在它的官方主頁(見參考鏈接一)上發現很多知名公司都采用了這款嵌入式數據庫。Berkeley DB的一個很重要的特點是就是高速存儲。在高流量,高并發的情況下,Berkeley DB要比非嵌入式的數據庫表現得更加出色。所以在一些技術實現上,Berkeley DB被作為大型關系數據庫的中間數據緩沖層,用來快速的保存數據,可能會在適當的時刻再導入到大型數據庫中,進而應用大型數據庫所提供的更為高級的特性。
  Berkeley DB雖然是開源的產品,但對某些條件下的商業性應用,卻不是免費的,而且價格頗為昂貴。這些商業條件排除了開源的情況,不發放分布版本的情況,等等。比如,如果你的程序是開放源代碼的或者僅僅應用到單一的網站上,在這種情況下,Berkeley DB是免費的。
  2. 獲得Java與Berkeley DB的接口
  Berkeley DB目前的版本是4.1.25,自帶了Java接口。下載的壓縮包中包含C和Java語言的源代碼和編譯配置文件。在Windows平臺,可以用MS Visual C++ 6.0或MS VC.Net編譯。用VC6編譯的操作如下介紹:在源代碼的build_win32路徑下打開VC的工程文件,之后在Build菜單中的Set Active Configuration選擇db_java win32 release編譯選項。在VC的Tools菜單Options選項中指定JNI.H等Java本地化接口編譯時所需要頭文件的位置。你會在JDK的include路徑下找到這些頭文件, 例如加入的路徑可能會是這樣的:C:jdk1.4include和C:jdk1.4includewin32。最后在Tools菜單中Options選項還要設置Javac.exe和Jar.exe的執行路徑,這個設置會使VC開發環境也能調用Java編譯器,從而在VC環境下直接完成對Java接口類的編譯和打包。在編譯后,在release 路徑下的文件中找到db.jar, libdb41.dll, libdb_java41.dll,這三個文件組成了Berkeley DB 的Java接口程序包。
  3. 應用Java與Berkeley DB的接口
  Berkeley DB并不是一個關系型的數據庫。不能應用標準的SQL語句對數據庫操作,對它的操作要調用專用的API實現。這些API提供了查詢、插入、刪除等功能。比如com.sleepycat.db.Db類代表數據庫對象。Db類的put()方法完成的是插入功能,get()方法完成的是讀出數據的功能。
  Berkeley DB每一個記錄都有一個鍵值和對應的數據值,而鍵值和數據必須是類com.sleepycat.db.Dbt的對象或其子類的對象。Dbt提供了一些方法可以將byte數組或Object對象保存到Dbt的對象中去。比如,Dbt類中的set_data(byte[])或set_object(Object)方法。注意到目前Berkeley DB中的Java API命名方法并不符合Java的命名規范,比如set_data()方法應該命名為setData()方法。Berkeley DB許諾在下一個版本中會提供符合命名規范的Java API。
  Berkeley DB對任何存入的數據都是直接原樣存儲到數據文件中去,無論其是二進制數據還是ASCII或Unicode等編碼的文本。通常可以利用這一特性和Java串行化的概念方便的進行數據的存取。例如聲明一個類
  public class AccountInfo implements Serializable{
  //帳戶信息
  public String loginName;
  public String password;
  public boolean auotLogin;
  }
  在這個AccountInfo類中僅僅包含了數據項的定義。我們完全可以將這個類看作數據庫的表中字段定義。可以用Berkeley DB保存AccountInfo對象的串行化二進制數據,以此來保存這個對象中的變量值。在操作中,先對Dbt的對象調用set_object(AccountInfo)方法,而后把這個Dbt對象作為一條紀錄保存到表中。當然,我們也可以應用繼承Dbt類的方法來完成對數據的保存。
  下面這段簡單代碼演示如何將數據存入到數據庫中,然后再用游標對象瀏覽全部數據。
  //注意,下面的程序的忽略了對異常處理,寫入數據初始化等等一些代碼,請在適當修改后再編
  //譯運行它
  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方式也以邏輯記錄號做為鍵值,但可以保存定長或變長的記錄值。這里提到的邏輯記錄號有兩種,可變的和固定的。可變邏輯記錄號會根據數據記錄的增加與刪除做相應的變化。比如在數據庫中共有100條記錄,如果刪除第80條記錄,那么第81條記錄的邏輯記錄號會自動變成80,以此類推,第100條記錄邏輯記錄號會變成99。固定的邏輯記錄號則無論數據庫如何操作都不會有變化。Queue模式下,邏輯記錄號只能是固定方式。
  Recno模式則可通過配置來選擇是采用那種類型的記錄號作為鍵值。Btree模式也可以通過設置,將可變的邏輯記錄號做為鍵值。
  這幾種存儲模式各有優缺點,要根據具體的需求來選擇。當鍵值不想用邏輯記錄號時Btree或Hash是必須的選擇。Btree方式比較適合連續的順序讀取,比如,當鍵值是時間值,如果經常有從某一時間點開始連續讀取后繼的記錄的操作,Btree是一種很好的選擇。對隨機的跳躍式讀取,Hash模式則更為恰當。Queue和Recno都以記錄號為鍵值,但前者適合先進先出的讀取方式。
  Recno則通常是存取變長文本記錄的理想存儲模式。
  5. Berkeley DB Environment的概念
  Berkeley DB Environment為一組數據庫同時提供參數設置。更為重要的是,如果要應用更高級的特性,必須要使用Environment功能,比如在想要對保存的數據進行加密存儲時。
  6. 更多特點
  除了最基本的插入、查詢、刪除功能以外,Berkeley DB還提供了一些特性,比如Transaction,數據加密,同步加鎖控制,錯誤日志等功能。下面的圖片是Berkeley DB功能示意圖。
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1QW2893應急燈專用檢測芯片
  2. 590.40 KB  |  1次下載  |  免費
  3. 2低功耗藍牙BLE透傳模塊HM-BT4531的技術規格與應用指南
  4. 1.40 MB  |  1次下載  |  免費
  5. 3PC2570低Iq 理想二極管控制芯片中文資料
  6. 1.56 MB   |  1次下載  |  免費
  7. 4AG32VH 系列應用指南
  8. 0.60 MB   |  1次下載  |  免費
  9. 5Claroty-2024年全球CPS安全狀況:中斷對業務的影響
  10. 3.70 MB   |  1次下載  |  免費
  11. 6stm32g070數據手冊和使用手冊
  12. 12.06 MB   |  次下載  |  免費
  13. 7FS312B USB的PD和OC快充協議電壓誘騙控制器中文手冊
  14. 1.35 MB   |  次下載  |  免費
  15. 8SY8201矽力杰高效率快速響應,1A, 27V輸入 同步降壓調節器
  16. 510.16 KB  |  次下載  |  免費

本月

  1. 1AI智能眼鏡產業鏈分析
  2. 4.43 MB   |  471次下載  |  免費
  3. 2蘇泊爾電磁爐線路的電路原理圖資料合集
  4. 2.02 MB   |  300次下載  |  5 積分
  5. 3貼片三極管上的印字與真實名稱的對照表詳細說明
  6. 0.50 MB   |  95次下載  |  1 積分
  7. 4長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
  8. 0.46 MB   |  91次下載  |  5 積分
  9. 5涂鴉各WiFi模塊原理圖加PCB封裝
  10. 11.75 MB   |  89次下載  |  1 積分
  11. 6錦銳科技CA51F2 SDK開發包
  12. 24.06 MB   |  43次下載  |  1 積分
  13. 7AO4803A雙P通道增強型場效應晶體管的數據手冊
  14. 0.11 MB   |  28次下載  |  2 積分
  15. 8錦銳CA51F005 SDK開發包
  16. 19.47 MB   |  19次下載  |  1 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191388次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分
主站蜘蛛池模板: 福州市| 禹城市| 浪卡子县| 历史| 甘德县| 马鞍山市| 苍梧县| 开江县| 贺兰县| 青海省| 洮南市| 长垣县| 延长县| 三穗县| 萨嘎县| 洛川县| 华坪县| 金沙县| 万宁市| 彝良县| 同江市| 孟津县| 隆回县| 烟台市| 厦门市| 澄江县| 常宁市| 苍南县| 东光县| 伊吾县| 广水市| 池州市| 和林格尔县| 临泽县| 来安县| 大城县| 武陟县| 宁陕县| 竹山县| 阿拉善盟| 威海市|