新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式數(shù)據(jù)庫(kù)在Java中的應(yīng)用[1]

        嵌入式數(shù)據(jù)庫(kù)在Java中的應(yīng)用[1]

        作者: 時(shí)間:2008-04-03 來源:網(wǎng)絡(luò) 收藏

        本文引用地址:http://www.104case.com/article/258086.htm參考下面的應(yīng)用JDBC連接的例程:

          //聲明JDBC驅(qū)動(dòng)程序
          Class clz = Class.forName(.JDBCDriver);
          //連接數(shù)據(jù)庫(kù)
          Connection conn = DriverManager.getConnection(jdbc:sqlite:/c:/temp/e2.db);
          Statement stmt = conn.createStatement();
          //生成person表,包含名子和年齡字段
          stmt.execute(create table person (name varchar(100),age int));
          //插入數(shù)據(jù)
          stmt.execute(insert into person values('steve',25));
          //用SQL語句讀出數(shù)據(jù)
          result = stmt.executeQuery(select * from person);
          while(result.next()){
          System.out.println(result.getString(1));
          System.out.println(result.getInt(2));
          }

          運(yùn)行程序時(shí)要在.exe命令行加入選項(xiàng)java.library.path指定到Sqlite_jni.dll所在的路徑。例如,如果Sqlite_jni.dll放在c:sqliteNative 路徑下面,運(yùn)行類com.e2one.MyClass 的命令行將會(huì)是這樣:java -Djava.library.path=c:sqliteNative com.e2one.MyClass。

          5. 的特點(diǎn)

          SQLite是無數(shù)據(jù)類型的數(shù)據(jù)庫(kù)。雖然在生成表結(jié)構(gòu)的時(shí)候,要聲明每個(gè)域的數(shù)據(jù)類型,但SQLite并不做任何檢查。開發(fā)人員要靠自己的程序控制輸入與讀出數(shù)據(jù)的類型是正確的。這里有一個(gè)例外,就是當(dāng)主鍵為整型值時(shí),如果要插入一個(gè)非整型值時(shí)會(huì)產(chǎn)生異常。另外,雖然在插入或讀出數(shù)據(jù)的時(shí)候是不區(qū)分類型的,但在比較的時(shí)候,不同數(shù)據(jù)類型是有區(qū)別的。比如:

        CREATE TABLE MyTable(a INTEGER, b TEXT);
        INSERT INTO MyTable valueS(0,0);

          當(dāng)執(zhí)行下面的查詢:

        SELECT count(*) FROM MyTable WHERE a=='00';

          會(huì)返回一條記錄,因?yàn)樽侄蝍的類型是整型,而數(shù)字00與0是相等的。

          而執(zhí)行下面的查詢則不會(huì)返回記錄:

        SELECT count(*) FROM MyTable WHERE b=='00';

          因?yàn)樽侄蝏是字符類型,字符00與0是不相等的。

          SQLite提供了對(duì)Transaction的支持。應(yīng)用Transaction即保證了數(shù)據(jù)的完整性,也會(huì)提高運(yùn)行速度,因?yàn)槎鄺l語句一起提交給數(shù)據(jù)庫(kù)的速度會(huì)比一條一條的提交方式更快。

          對(duì)二進(jìn)制數(shù)據(jù),SQLite不能直接保存。但可以先將二進(jìn)制的數(shù)據(jù)轉(zhuǎn)換成ASCII編碼,然后再保存。Base64編碼機(jī)制是最常見的把二進(jìn)制數(shù)據(jù)轉(zhuǎn)換成ASCII編碼的手段。在SQLite的C語言代碼encode.c中提供了Base64編碼的功能。對(duì)而言,在參考鏈接六中提供的Apache的XML RPC項(xiàng)目中可以找到一個(gè)Base64編碼的例子。

          上面介紹了兩個(gè)比較常見的,Berkeley DB速度極快,可靠性高,但學(xué)習(xí)起來有一定難度。SQLite則簡(jiǎn)單易用,速度也很快,又可以應(yīng)用標(biāo)準(zhǔn)的JDBC連接,但它功能卻照Berkeley略有遜色,比如加密功能、二進(jìn)制數(shù)據(jù)的處理等。




        上一頁(yè) 1 2 3 4 5 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 惠水县| 都江堰市| 五台县| 阿拉善右旗| 中卫市| 广水市| 凤凰县| 庄浪县| 乐业县| 湖南省| 博兴县| 新河县| 南宫市| 青阳县| 当涂县| 东乌珠穆沁旗| 沽源县| 宜宾县| 文水县| 石棉县| 鸡西市| 安阳市| 察哈| 方山县| 肥城市| 渝中区| 阿拉善右旗| 礼泉县| 天祝| 辽阳县| 修武县| 湘阴县| 万宁市| 涟源市| 花垣县| 石城县| 葫芦岛市| 新绛县| 科技| 张家界市| 吉安市|