新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式數據庫在Java中的應用[1]

        嵌入式數據庫在Java中的應用[1]

        作者: 時間:2008-04-03 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/258086.htm2. 編譯第三方接口

          源代碼是C,而且官方網站上只提供了C和Tcl語言的接口。為了應用接口,要采用第三方的接口驅程,可在參考鏈接三中找到這個接口程序。這個接口提供了兩種連接 的方式:一是直接用JNI技術調用的C語言接口,這種方式要求開發人員要對SQLite本身的API也有一定的了解。在第二種方式中,接口程序實現了Java標準規范的JDBC接口,這樣開發人員只要對JDBC有了解就可以了。

          下面介紹在Windows系統MS VC6環境中編譯SQLite Java接口(同時包括JNI和JDBC兩個接口)的過程。如果你對C語言編譯的設置很熟悉,可以跳這這段介紹。

          第一步先把SQLite源代碼編譯成Lib靜態庫文件。具體的步驟可以直接應用下面參考鏈接中提供的MS VC6工作區文件,其中有一個編譯SQLite到靜態庫的設置。編譯成功后得到SQLite.lib文件。
          第二步要建立一個新的VC DLL項目,然后和上面介紹的Berkeley DB在編譯Java本地化接口的設置一樣,在VC的Tools菜單Options選項中指定JNI.H等JNI編譯所要的頭文件位置。同時還要指定sqlite.h頭文件位置,這個文件是在生成SQLite靜態庫的時候自動生成的,可以在SQLite.lib文件所在的工作區目錄下面找到它,例如加入的路徑為C:sqlitemsvc6。然后在Project菜單的setting選項設置Link到SQLite.lib庫文件,并再次在Tools菜單中Options指定SQLite.lib的查找路徑。注意有些情況下可能要設置予編譯選項HAVE_SQLITE_COMPILE以便使用SQLite中VM的一些功能。編譯成功后可得到Sqlite_jni.dll文件。

          第三方接口庫中的Java代碼包含JNI接口和多個版本的JDBC接口程序,可根據你的JRE的版本選擇相應的JDBC程序。編譯這些Java代碼的過程這里就不做敘述了。

          編譯后的Java類包加上前面得到的Sqlite_jni.dll文件,組成了SQLite的Java接口庫,在應用Java語言調用JDBC或JNI接口時,都是通過應用Java的本地化技術調用Sqlite_jni.dll文件,完成對SQLite數據庫的操作。

          3. 應用JNI直接調用SQLite功能

          下面這段代碼演示如何應用JNI接口操作SQLite??梢钥吹紻atabase類的exec()方法是執行SQL語句的關鍵:

          Database db = new Database();
          try {
            //打開數據庫
            db.open(c:tempmydata.slt, 0666);
            db.interrupt();
            db.busy_timeout(1000);
            db.busy_handler(null);
            db.exec(create table account (name varchar(10),gale boolean),result);
            db.exec(insert into account values('steve','m'), result);
            db.exec(select * from account,result);
            //關閉數據庫
            db.close();
          } catch (Exception e) {
            e.printStackTrace();
          }

          4. 應用JDBC連接SQLite

          用SQLite.JDBCDriver作為JDBC的驅動程序類名。連接JDBC的URL格式為jdbc:sqlite:/path。這里的path為指定到SQLite數據庫文件的路徑,例如:

          jdbc:sqlite://dirA/dirB/dbfile
          jdbc:sqlite://DRIVE:/dirA/dirB/dbfile
          jdbc:sqlite://COMPUTERNAME/shareA/dirB/dbfile


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 汤原县| 噶尔县| 从化市| 扎囊县| 永定县| 清水河县| 东乡| 定结县| 洪泽县| 晴隆县| 伊金霍洛旗| 修水县| 南岸区| 澄迈县| 多伦县| 呼和浩特市| 新津县| 宜宾县| 驻马店市| 五华县| 西乡县| 西充县| 宁都县| 绥化市| 武安市| 西青区| 商洛市| 松溪县| 沙田区| 那坡县| 中阳县| 西畴县| 兴化市| 汉阴县| 巴林左旗| 建瓯市| 麟游县| 平陆县| 浦城县| 永新县| 谷城县|