摘要:請注意本教程是針對版本編寫的,有可能不支持舊版本。在本教程的過程中,將使用代碼中給出的每個。任何對象都可以作為文檔添加到數據庫中,并作為對象從數據庫中檢索。這個例子中,我們使用驅動程序提供的類。
這是一個關于如何用Java Sync Driver 4.1使用ArangoDB的簡短教程。在不到10分鐘的時間內,您將學會如何用Java 操作ArangoDB (ArangoDB on Github)。有關驅動程序的功能和性能的更多細節,請查看相應的博客文章。
*請注意: 本教程是針對 ArangoDB 3.1版本編寫的,有可能不支持舊版本。
如果您使用的是舊版本的ArangoDB,請查看為舊版本設計的Java教程。*
安裝Java驅動程序
本教程將在Eclipse中介紹Java驅動程序的用法。首先,通過maven將Java驅動程序添加到您的項目中:
1 23 4 8 ....com.arangodb 5arangodb-java-driver 64.1.0 7
使用eclipse,您需要執行以下步驟:
首先 file,然后 new 然后點擊 other
選擇 Maven Project
選擇工作區位置
選擇默認的原型
最后選擇一個Group id (mydb) 和一個Artifact id (firstProject) 然后點擊完成
現在打開 pom.xml, 在標簽 dependencies 然后點擊添加
現在我們填寫groupID (com.arangodb), artifactID(arangodb-java-driver) and version(4.0.0)
注意: 確保安裝并運行ArangoDB 3.1或更高版本。
快速開始創建一個名為 FirstProject 的文件并寫入:
1 2 package mydb.firstproject; 3 4 import java.util.Map; 5 6 import com.arangodb.ArangoCollection; 7 import com.arangodb.ArangoCursor; 8 import com.arangodb.ArangoDB; 9 import com.arangodb.ArangoDBException; 10 import com.arangodb.entity.BaseDocument; 11 import com.arangodb.entity.CollectionEntity; 12 import com.arangodb.util.MapBuilder; 13 import com.arangodb.velocypack.VPackSlice; 14 import com.arangodb.velocypack.exception.VPackException; 15 16 public class FirstProject { 17 public static void main(final String[] args) { 18 19 } }
在eclipse中,您需要創建一個名為 FirstProject的新類,并將代碼復制到其中。在本教程的過程中,將使用代碼中給出的每個 import。
連接配置和打開連接以啟動ArangoDB。
1 ArangoDB arangoDB = new ArangoDB.Builder().build();
提示: 原始連接為 http://127.0.0.1:8529.
創建數據庫我們來創建一個新的數據庫:
1 2 String dbName = "mydb"; 3 try { 4 arangoDB.createDatabase(dbName); 5 System.out.println("Database created: " + dbName); 6 } catch (ArangoDBException e) { 7 System.err.println("Failed to create database: " + dbName + "; " + e.getMessage()); }
結果是應該是:
Database created: mydb創建一個集合
現在讓我們來創建我們的第一個集合:
1 2 String collectionName = "firstCollection"; 3 try { 4 CollectionEntity myArangoCollection = arangoDB.db(dbName).createCollection(collectionName); 5 System.out.println("Collection created: " + myArangoCollection.getName()); 6 } catch (ArangoDBException e) { 7 System.err.println("Failed to create collection: " + collectionName + "; " + e.getMessage()); }
結果是應該是:
1 Collection created: firstCollection
您應該了解的一些細節代碼:
createCollection()創建集合
firstCollection 是集合的名字
創建文檔現在我們在集合中創建一個文檔。任何對象都可以作為文檔添加到數據庫中,并作為對象從數據庫中檢索。
這個例子中,我們使用驅動程序提供的BaseDocument類。文檔的屬性存儲在映射中,作為鍵
1 2 BaseDocument myObject = new BaseDocument(); 3 myObject.setKey("myKey"); 4 myObject.addAttribute("a", "Foo"); 5 myObject.addAttribute("b", 42); 6 try { 7 arangoDB.db(dbName).collection(collectionName).insertDocument(myObject); 8 System.out.println("Document created"); 9 } catch (ArangoDBException e) { 10 System.err.println("Failed to create document. " + e.getMessage());
結果應該是:
1 Document created
您應該了解的一些細節代碼:
setKey() 設置新對象的鍵值
addAttribute() 將一個新的鍵/值對放在對象中
每個屬性作為單個鍵/值對存儲在文檔根目錄中
閱讀文檔閱讀創建的文檔:
1 2 try { 3 BaseDocument myDocument = arangoDB.db(dbName).collection(collectionName).getDocument("myKey", 4 BaseDocument.class); 5 System.out.println("Key: " + myDocument.getKey()); 6 System.out.println("Attribute a: " + myDocument.getAttribute("a")); 7 System.out.println("Attribute b: " + myDocument.getAttribute("b")); 8 } catch (ArangoDBException e) { 9 System.err.println("Failed to get document: myKey; " + e.getMessage()); }
結果應該是:
1 2 Key: myKey 3 Attribute a: Foo Attribute b: 42
您應該了解的一些細節代碼:
getDocument() 將存儲的文檔數據返回到給定的JavaBean (BaseDocument)
閱讀VelocyPack 格式文檔您也可以閱讀VelocyPack 格式文檔:
1 2 try { 3 VPackSlice myDocument = arangoDB.db(dbName).collection(collectionName).getDocument("myKey", 4 VPackSlice.class); 5 System.out.println("Key: " + myDocument.get("_key").getAsString()); 6 System.out.println("Attribute a: " + myDocument.get("a").getAsString()); 7 System.out.println("Attribute b: " + myDocument.get("b").getAsInt()); 8 } catch (ArangoDBException | VPackException e) { 9 System.err.println("Failed to get document: myKey; " + e.getMessage()); }
您應該了解的一些細節代碼:
getDocument() 將存儲的文檔數據返回到 VelocyPack 格式 (VPackSlice)
更新文檔1 2 myObject.addAttribute("c", "Bar"); 3 try { 4 arangoDB.db(dbName).collection(collectionName).updateDocument("myKey", myObject); 5 } catch (ArangoDBException e) { 6 System.err.println("Failed to update document. " + e.getMessage()); }再次閱讀文件
我們再次閱讀文件:
1 2 try { 3 BaseDocument myUpdatedDocument = arangoDB.db(dbName).collection(collectionName).getDocument("myKey", 4 BaseDocument.class); 5 System.out.println("Key: " + myUpdatedDocument.getKey()); 6 System.out.println("Attribute a: " + myUpdatedDocument.getAttribute("a")); 7 System.out.println("Attribute b: " + myUpdatedDocument.getAttribute("b")); 8 System.out.println("Attribute c: " + myUpdatedDocument.getAttribute("c")); 9 } catch (ArangoDBException e) { 10 System.err.println("Failed to get document: myKey; " + e.getMessage()); }
結果應該是:
1 2 Key: myKey 3 Attribute a: Foo 4 Attribute b: 42 Attribute c: Bar刪除文檔
讓我們來刪除一個文檔:
1 2 try { 3 arangoDB.db(dbName).collection(collectionName).deleteDocument("myKey"); 4 } catch (ArangoDBException e) { 5 System.err.println("Failed to delete document. " + e.getMessage()); }執行AQL查詢
首先我們需要在集合firstCollection中創建一些名稱為Homer的文檔:
1 2 ArangoCollection collection = arangoDB.db(dbName).collection(collectionName); 3 for (int i = 0; i < 10; i++) { 4 BaseDocument value = new BaseDocument(); 5 value.setKey(String.valueOf(i)); 6 value.addAttribute("name", "Homer"); 7 collection.insertDocument(value); }
從集合firstCollection中獲取所有名稱為Homer 的文檔,并且遍歷存儲結果:
try { String query = "FOR t IN firstCollection FILTER t.name == @name RETURN t"; MapbindVars = new MapBuilder().put("name", "Homer").get(); ArangoCursor cursor = arangoDB.db(dbName).query(query, bindVars, null, BaseDocument.class); cursor.forEachRemaining(aDocument -> { System.out.println("Key: " + aDocument.getKey()); }); } catch (ArangoDBException e) { System.err.println("Failed to execute query. " + e.getMessage()); }
結果應該是:
Key: 1 Key: 0 Key: 5 Key: 3 Key: 4 Key: 9 Key: 2 Key: 7 Key: 8 Key: 6
您應該了解的一些細節代碼:
AQL 查詢語法使用占位符@name 其必須被綁定到一個值
query() 執行定義的查詢并返回一個具有給定類的ArangoCursor (這里: BaseDocument)
順序不能保證
使用AQL刪除文檔現在我們將刪除之前創建的文檔:
try { String query = "FOR t IN firstCollection FILTER t.name == @name " + "REMOVE t IN firstCollection LET removed = OLD RETURN removed"; MapbindVars = new MapBuilder().put("name", "Homer").get(); ArangoCursor cursor = arangoDB.db(dbName).query(query, bindVars, null, BaseDocument.class); cursor.forEachRemaining(aDocument -> { System.out.println("Removed document " + aDocument.getKey()); }); } catch (ArangoDBException e) { System.err.println("Failed to execute query. " + e.getMessage()); }
結果應該是:
Removed document: 1 Removed document: 0 Removed document: 5 Removed document: 3 Removed document: 4 Removed document: 9 Removed document: 2 Removed document: 7 Removed document: 8 Removed document: 6學習更多
查看AQL 文檔,進一步學習我們的查詢語言。
想更多地了解我們的數據庫嗎點擊這里!
閱讀關于Collections的更多信息。
在我們的文檔中瀏覽更多關于Documents的信息。
相關更多示例,您可以瀏覽ArangoDB 菜譜。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/35839.html
摘要:請注意本教程是針對版本編寫的,有可能不支持舊版本。在本教程的過程中,將使用代碼中給出的每個。任何對象都可以作為文檔添加到數據庫中,并作為對象從數據庫中檢索。這個例子中,我們使用驅動程序提供的類。 這是一個關于如何用Java Sync Driver 4.1使用ArangoDB的簡短教程。在不到10分鐘的時間內,您將學會如何用Java 操作ArangoDB (ArangoDB on Git...
摘要: Editor’s note: Full disclosure — the author is a developer and software architect at ArangoDB GmbH, which leads the development of the open source multi-model database ArangoDB. In recent years...
摘要: Editor’s note: Full disclosure — the author is a developer and software architect at ArangoDB GmbH, which leads the development of the open source multi-model database ArangoDB. In recent years...
閱讀 1870·2021-11-25 09:43
閱讀 3161·2021-11-15 11:38
閱讀 2708·2019-08-30 13:04
閱讀 483·2019-08-29 11:07
閱讀 1491·2019-08-26 18:37
閱讀 2697·2019-08-26 14:07
閱讀 582·2019-08-26 13:52
閱讀 2278·2019-08-26 12:09