日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
深入了解Java嵌入式KV數(shù)據(jù)庫的秘密(java嵌入式kv數(shù)據(jù)庫)

隨著計算機技術(shù)的不斷發(fā)展,數(shù)據(jù)存儲和處理需求的也越來越多,而嵌入式KV數(shù)據(jù)庫則成為了一個備受關(guān)注的數(shù)據(jù)存儲解決方案。在眾多的嵌入式KV數(shù)據(jù)庫中,Java嵌入式KV數(shù)據(jù)庫是一款備受推崇的物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)庫。

創(chuàng)新互聯(lián)建站專注于阜康企業(yè)網(wǎng)站建設(shè),成都響應式網(wǎng)站建設(shè)公司,商城開發(fā)。阜康網(wǎng)站建設(shè)公司,為阜康等地區(qū)提供建站服務。全流程定制網(wǎng)站建設(shè),專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務

本文將從以下幾個方面:

一、什么是Java嵌入式KV數(shù)據(jù)庫

Java嵌入式KV數(shù)據(jù)庫是一種使用Java語言編寫的,嵌入式KV存儲引擎。它是基于B+樹存儲、LRU淘汰策略的一種輕量級、高性能的存儲引擎,可以將數(shù)據(jù)存儲在內(nèi)存或本地磁盤中。Java嵌入式KV數(shù)據(jù)庫在存儲數(shù)據(jù)方面有很多優(yōu)點,例如高吞吐量、嵌入式、易用性等。

二、Java嵌入式KV數(shù)據(jù)庫的特點

1.高性能:Java嵌入式KV數(shù)據(jù)庫以高速度和高吞吐量的方式完成數(shù)據(jù)存儲和管理。

2.嵌入式:Java嵌入式KV數(shù)據(jù)庫可以輕松地集成到應用程序中,不需要獨立的數(shù)據(jù)庫服務器。

3.易于使用:Java嵌入式KV數(shù)據(jù)庫提供了簡單易用的API,并支持類SQL的查詢和數(shù)據(jù)分析。

4.可伸縮性:Java嵌入式KV數(shù)據(jù)庫支持分布式數(shù)據(jù)存儲和多種分片策略,可以滿足更大規(guī)模的應用需求。

5.數(shù)據(jù)一致性:Java嵌入式KV數(shù)據(jù)庫支持ACID事務,可以確保數(shù)據(jù)的一致性和完整性。

三、Java嵌入式KV數(shù)據(jù)庫的應用場景

Java嵌入式KV數(shù)據(jù)庫可以應用于很多場景,例如:

1.物聯(lián)網(wǎng)設(shè)備:Java嵌入式KV數(shù)據(jù)庫的小時尺寸、節(jié)能和高性能的特性,可以滿足物聯(lián)網(wǎng)設(shè)備的高效、高速的數(shù)據(jù)存儲要求。

2.移動應用程序:Java嵌入式KV數(shù)據(jù)庫可以輕松地集成到移動應用程序中,不需要獨立的數(shù)據(jù)庫服務器,可以輕易地存儲和管理數(shù)據(jù)。

3.游戲開發(fā):Java嵌入式KV數(shù)據(jù)庫可以高效的存儲和訪問游戲的數(shù)據(jù),例如玩家數(shù)據(jù)、游戲設(shè)置等。

4.本地緩存:Java嵌入式KV數(shù)據(jù)庫可以作為本地緩存存儲引擎,為應用程序提供更快的響應速度。

四、Java嵌入式KV數(shù)據(jù)庫的優(yōu)勢

Java嵌入式KV數(shù)據(jù)庫相對于傳統(tǒng)關(guān)系型數(shù)據(jù)庫(RDBMS)具有以下優(yōu)勢:

1.高性能:Java嵌入式KV數(shù)據(jù)庫由于采用的是內(nèi)存存儲和B+樹索引,具有更高的讀寫速度。

2.易維護:Java嵌入式KV數(shù)據(jù)庫不需要獨立的數(shù)據(jù)庫服務器,具有更低的維護成本。

3.可擴展性:Java嵌入式KV數(shù)據(jù)庫可以容易地進行分布式擴展。

4.易使用:Java嵌入式KV數(shù)據(jù)庫具有類SQL的查詢語言、簡單易用的API和圖形化的管理工具。

5.節(jié)能環(huán)保:Java嵌入式KV數(shù)據(jù)庫具有更小的存儲空間和較低的能耗,對環(huán)境更加友好。

五、結(jié)論

Java嵌入式KV數(shù)據(jù)庫是一款輕量級、高性能、易用的數(shù)據(jù)庫解決方案,可以應用于很多場景,如物聯(lián)網(wǎng)設(shè)備、移動應用程序、游戲開發(fā)和本地緩存等。相較于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫具有更高的性能、更低的維護成本、更好的可擴展性和更加友好的環(huán)保性。因此,在應用場景滿足要求時,Java嵌入式KV數(shù)據(jù)庫是一個非常值得選擇的存儲引擎。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計及定制高端網(wǎng)站建設(shè)服務!

java 6 中自帶的javaDB(derby)數(shù)據(jù)庫,是否不用啟動服務,直接可以和jdk進行交互呀?

derby, 前兩天仔芹宏細看了一下居然是以前的cloudspace,以前就出名了,笑液后來幾經(jīng)轉(zhuǎn)手倒賣,最后被ibm捐贈給apache了。

sun挺讓人失望的,應該嵌入一個oo數(shù)據(jù)庫,比如db4o之嫌升冊類的。搞這么個雞肋真是無聊。

新安裝了 JDK 6 的程序員們也許會發(fā)現(xiàn),除了傳統(tǒng)的 bin、jre 等目錄,JDK 6 新增了一個名為 db 的目錄。這便是 Java 6 的新成員:Java DB。這是一個純 Java 實現(xiàn)、開源的數(shù)據(jù)庫管理系統(tǒng)(DBMS),源于 Apache 軟件基金會(ASF)名下的項目 Derby。它只有 2MB 大小,對比動輒上 G 的數(shù)據(jù)庫來說可謂袖珍。但這并不妨礙 Derby 功能齊備,支持幾乎大部分的數(shù)據(jù)庫應用所需要的特性。更難能可貴的是,依托于 ASF 強大的社區(qū)力量,Derby 得到了包括 IBM 和 Sun 等大公司以及全世界優(yōu)秀程序員們的支持。這也難怪 Sun 公司會選擇其 10.2.2 版本納入到 JDK 6 中,作為內(nèi)嵌的數(shù)據(jù)庫。這就好像為 JDK 注入了一股全新的活力:Java 程序員不再需要耗費大量精力安裝和配置數(shù)據(jù)庫,就能進行安全、易用、標準、并且免費的數(shù)據(jù)庫編程。在這一章中吵櫻純,我們將初窺 Java DB 的世界,來探究如何使用它編寫出功能豐富的程序。

Hello, Java DB:內(nèi)嵌模式的 Derby

既然有了內(nèi)嵌(embedded)的數(shù)據(jù)庫,就讓我們從一個簡單的范例開始,試著使用它吧。這個程序做了升咐大多數(shù)數(shù)據(jù)庫應用都可能會做的操作:在 DBMS 中創(chuàng)建了一個名為 helloDB 的數(shù)據(jù)庫;創(chuàng)建了一張數(shù)據(jù)表,取名為 hellotable;向表內(nèi)插入了兩條數(shù)據(jù);然后,查詢數(shù)據(jù)并將結(jié)果打印在控制臺上;最后,刪除表和數(shù)據(jù)庫,釋放資源。

public class HelloJavaDB {

public static void main(String args) {

try { // load the driver

Class.forName(“org.apache.derby.jdbc.EmbeddedDriver”).newInstance();

System.out.println(“Load the embedded driver”);

Connection conn = null;

Properties props = new Properties();

props.put(“user”頌游, “user1”); props.put(“password”, “user1”);

//create and connect the database named helloDB

conn=DriverManager.getConnection(“jdbc:derby:helloDB;create=true”, props);

System.out.println(“create and connect to helloDB”);

conn.setAutoCommit(false);

// create a table and insert two records

Statement s = conn.createStatement();

s.execute(“create table hellotable(name varchar(40), score int)”);

System.out.println(“Created table hellotable”);

s.execute(“insert into hellotable values(‘Ruth Cao’, 86)”);

s.execute(“insert into hellotable values (‘Flora Shi’, 92)”);

// list the two records

ResultSet rs = s.executeQuery(

“SELECT name, score FROM hellotable ORDER BY score”);

System.out.println(“namettscore”);

while(rs.next()) {

StringBuilder builder = new StringBuilder(rs.getString(1));

builder.append(“t”);

builder.append(rs.getInt(2));

System.out.println(builder.toString());

}

// delete the table

s.execute(“drop table hellotable”);

System.out.println(“Dropped table hellotable”);

rs.close();

s.close();

System.out.println(“Closed result set and statement”);

conn.commit();

conn.close();

System.out.println(“Committed transaction and closed connection”);

try { // perform a clean shutdown

DriverManager.getConnection(“jdbc:derby:;shutdown=true”);

} catch (SQLException se) {

System.out.println(“Database shut down normally”);

}

} catch (Throwable e) {

// handle the exception

}

System.out.println(“SimpleApp finished”);

}

}

隨后,我們在命令行(本例為 Windows 平臺,當然,其它系統(tǒng)下稍作改動即可)下鍵入以下命令:

清單 2. 運行 HelloJavaDB 命令

java –cp .;%JAVA_HOME%dblibderby.jar HelloJavaDB

圖 1. HelloJavaDB 程序的執(zhí)行結(jié)果

上述的程序和以往沒什么區(qū)別。不同的是我們不需要再為 DBMS 的配置而勞神,因為 Derby 已經(jīng)自動地在當前目錄下新建了一個名為 helloDB 的目錄,來物理地存儲數(shù)據(jù)和日志。需要做的只是注意命名問題:在內(nèi)嵌模式下驅(qū)動的名字應為 org.apache.derby.jdbc.EmbeddedDriver;創(chuàng)建一個新數(shù)據(jù)庫時需要在協(xié)議后加入 create=true。另外,關(guān)閉所有數(shù)據(jù)庫以及 Derby 的引擎可以使用以下代碼:

清單 3. 關(guān)閉所有數(shù)據(jù)庫及 Derby 引擎

DriverManager.getConnection(“jdbc:derby:;shutdown=true”);

如果只想關(guān)閉一個數(shù)據(jù)庫,那么則可以調(diào)用:

清單 4. 關(guān)閉一個數(shù)據(jù)庫

DriverManager.getConnection(“jdbc:derby:helloDB;shutdown=true “);

這樣,使用嵌入模式的 Derby 維護和管理數(shù)據(jù)庫的成本接近于 0。這對于希望專心寫代碼的人來說不失為一個好消息。然而有人不禁要問:既然有了內(nèi)嵌模式,為什么大多數(shù)的 DBMS 都沒有采取這樣的模式呢?不妨做一個小實驗。當我們同時在兩個命令行窗口下運行 HelloJavaDB 程序。結(jié)果一個的結(jié)果與剛才一致,而另一個卻出現(xiàn)了錯誤,如 圖 2 所示。

圖 2. 內(nèi)嵌模式的局限

錯誤的原因其實很簡單:在使用內(nèi)嵌模式時,Derby 本身并不會在一個獨立的進程中,而是和應用程序一起在同一個 Java 虛擬機(JVM)里運行。因此,Derby 如同應用所使用的其它 jar 文件一樣變成了應用的一部分。這就不難理解為什么在 classpath 中加入 derby 的 jar 文件,我們的示例程序就能夠順利運行了。這也說明了只有一個 JVM 能夠啟動數(shù)據(jù)庫:而兩個跑在不同 JVM 實例里的應用自然就不能夠訪問同一個數(shù)據(jù)庫了。

鑒于上述的局限性,和來自不同 JVM 的多個連接想訪問一個數(shù)據(jù)庫的需求,下一節(jié)將介紹 Derby 的另一種模式:網(wǎng)絡服務器(Network Server)。

網(wǎng)絡服務器模式

如上所述,網(wǎng)絡服務器模式是一種更為傳統(tǒng)的客戶端/服務器模式。我們需要啟動一個 Derby 的網(wǎng)絡服務器用于處理客戶端的請求,不論這些請求是來自同一個 JVM 實例,還是來自于網(wǎng)絡上的另一臺機器。同時,客戶端使用 DRDA(Distributed Relational Database Architecture)協(xié)議連接到服務器端。這是一個由 The Open Group 倡導的數(shù)據(jù)庫交互標準。圖 3 說明了該模式的大體結(jié)構(gòu)。

由于 Derby 的開發(fā)者們努力使得網(wǎng)絡服務器模式與內(nèi)嵌模式之間的差異變小,使得我們只需簡單地修改 清單 1 中的程序就可以實現(xiàn)。如清單 5所示,我們在 HelloJavaDB 中增添了一個新的函數(shù)和一些字符串變量。不難看出,新的代碼只是將一些在上一節(jié)中特別指出的字符串進行了更改:驅(qū)動類為 org.apache.derby.jdbc.ClientDriver,而連接數(shù)據(jù)庫的協(xié)議則變成了 jdbc: URL 的字符串,而事實上,Derby 網(wǎng)絡的客戶端的連接格式為:jdbc: /databaseName。在這個例子中,我們使用了最簡單的本地機器作為服務器,而端口則是 Derby 默認的 1527 端口。

圖 3. Derby 網(wǎng)絡服務器模式架構(gòu)

清單 5. 網(wǎng)絡服務器模式下的 HelloJavaDB

public class HelloJavaDB {

public static String driver = “org.apache.derby.jdbc.EmbeddedDriver”;

public static String protocol = “jdbc:derby:”;

public static void main(String args) {

// same as before

}

private static void parseArguments(String args) {

if (args.length == 0 || args.length > 1) {

return;

}

if (args.equalsIgnoreCase(“derbyclient”)) {

framework = “derbyclient”;

driver = “org.apache.derby.jdbc.ClientDriver”;

protocol = “jdbc:

}

}

}

當然,僅僅有客戶端是不夠的,我們還需要啟動網(wǎng)絡服務器。Derby 中控制網(wǎng)絡服務器的類是 org.apache.derby.drda.NetworkServerControl,因此鍵入以下命令即可。如果想了解 NetworkServerControl 更多的選項,只要把 start 參數(shù)去掉就可以看到幫助信息了。關(guān)于網(wǎng)絡服務器端的實現(xiàn),都被 Derby 包含在 derbynet.jar 里。

清單 6. 啟動網(wǎng)絡服務器

java -cp .;”C:Program FilesJavajdk1.6.0dblibderby.jar”;

“C:Program FilesJavajdk1.6.0dblibderbynet.jar”

org.apache.derby.drda.NetworkServerControl start

相對應的,網(wǎng)絡客戶端的實現(xiàn)被包含在 derbyclient.jar 中。所以,只需要在 classpath 中加入該 jar 文件,修改后的客戶端就可以順利地讀取數(shù)據(jù)了。再一次嘗試著使用兩個命令行窗口去連接數(shù)據(jù)庫,就能夠得到正確的結(jié)果了。如果不再需要服務器,那么使用 NetworkServerControl 的 shutdown 參數(shù)就能夠關(guān)閉服務器。

更多

至此,文章介紹了 Java SE 6 中的新成員:Java DB(Derby),也介紹了如何在內(nèi)嵌模式以及網(wǎng)絡服務器模式下使用 Java DB。當然這只是淺嘗輒止,更多高級的選項還需要在 Sun 和 Derby 的文檔中尋找。在這一章的最后,我們將簡單介紹幾個 Java DB 的小工具來加快開發(fā)速度。它們都位于 org.apache.derby.tools 包內(nèi),在開發(fā)過程中需要獲取信息或者測試可以用到。

? ij:一個用來運行 SQL 腳本的工具;

? dblook:為 Derby 數(shù)據(jù)庫作模式提取(Schema extraction),生成 DDL 的工具;

java 嵌入式 kv數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于java 嵌入式 kv數(shù)據(jù)庫,深入了解Java嵌入式KV數(shù)據(jù)庫的秘密,java 6 中自帶的javaDB(derby)數(shù)據(jù)庫,是否不用啟動服務,直接可以和jdk進行交互呀?的信息別忘了在本站進行查找喔。

創(chuàng)新互聯(lián)(cdcxhl.com)提供穩(wěn)定的云服務器,香港云服務器,BGP云服務器,雙線云服務器,高防云服務器,成都云服務器,服務器托管。精選鉅惠,歡迎咨詢:028-86922220。


文章名稱:深入了解Java嵌入式KV數(shù)據(jù)庫的秘密(java嵌入式kv數(shù)據(jù)庫)
本文網(wǎng)址:http://www.5511xx.com/article/djdgpho.html