本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Java 連線至 Neptune 資料庫執行個體
本節會逐步引導您執行完整的 Java 範例,該範例會連線至 Amazon Neptune 資料庫執行個體並執行SPARQL查詢。
請遵循與 Neptune 資料庫EC2執行個體位於相同虛擬私有雲端 (VPC) 中的 Amazon 執行個體的這些指示。
使用 Java 連線至 Neptune
-
在EC2執行個體上安裝 Apache Maven。首先,輸入以下內容,以新增包含 Maven 套件的儲存庫:
sudo wget https://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
輸入以下內容以設定套件的版本編號:
sudo sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
接著即可使用 yum 安裝 Maven:
sudo yum install -y apache-maven
-
本範例僅經過 Java 8 的測試。輸入以下項目,在您的EC2執行個體上安裝 Java 8:
sudo yum install java-1.8.0-devel
-
輸入以下項目,將 Java 8 設定為EC2執行個體的預設執行期:
sudo /usr/sbin/alternatives --config java
出現提示時,輸入 Java 8 的數字。
-
輸入下列內容,將 Java 8 設定為EC2執行個體上的預設編譯器:
sudo /usr/sbin/alternatives --config javac
出現提示時,輸入 Java 8 的數字。
-
在新目錄中,建立一個
pom.xml
檔案,然後在文字編輯器中開啟檔案。 -
將以下內容複製到
pom.xml
檔案中並儲存它 (您通常可以將版本編號調整為最新的穩定版本):<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.amazonaws</groupId> <artifactId>RDFExample</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>RDFExample</name> <url>https://maven.apache.org</url> <dependencies>
<dependency> <groupId>org.eclipse.rdf4j</groupId> <artifactId>rdf4j-runtime</artifactId> <version>3.6</version> </dependency>
</dependencies> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <configuration> <mainClass>com.amazonaws.App</mainClass> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> </project>注意
如果您要修改現有的 Maven 專案,所需的相依性將在先前的程式碼中反白顯示。
-
若要為範例來源碼 (
src/main/java/com/amazonaws/
) 建立子目錄,請在命令列輸入下列命令:mkdir -p
src/main/java/com/amazonaws/
-
在
src/main/java/com/amazonaws/
目錄中,建立一個名為App.java
的檔案,然後在文字編輯器中開啟檔案。 -
將以下內容複製到
App.java
檔案。Replace (取代)your-neptune-endpoint
以及您 Neptune 資料庫執行個體的地址。注意
如需尋找 Neptune 資料庫執行個體主機名稱的相關資訊,請參閱 連線至 Amazon Neptune 端點 一節。
package com.amazonaws; import org.eclipse.rdf4j.repository.Repository; import org.eclipse.rdf4j.repository.http.HTTPRepository; import org.eclipse.rdf4j.repository.sparql.SPARQLRepository; import java.util.List; import org.eclipse.rdf4j.RDF4JException; import org.eclipse.rdf4j.repository.RepositoryConnection; import org.eclipse.rdf4j.query.TupleQuery; import org.eclipse.rdf4j.query.TupleQueryResult; import org.eclipse.rdf4j.query.BindingSet; import org.eclipse.rdf4j.query.QueryLanguage; import org.eclipse.rdf4j.model.Value; public class App { public static void main( String[] args ) { String sparqlEndpoint = "https://
your-neptune-endpoint
:port
/sparql"; Repository repo = new SPARQLRepository(sparqlEndpoint); repo.initialize(); try (RepositoryConnection conn = repo.getConnection()) { String queryString = "SELECT ?s ?p ?o WHERE { ?s ?p ?o } limit 10"; TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, queryString); try (TupleQueryResult result = tupleQuery.evaluate()) { while (result.hasNext()) { // iterate over the result BindingSet bindingSet = result.next(); Value s = bindingSet.getValue("s"); Value p = bindingSet.getValue("p"); Value o = bindingSet.getValue("o"); System.out.print(s); System.out.print("\t"); System.out.print(p); System.out.print("\t"); System.out.println(o); } } } } } -
使用下列 Maven 命令編譯並執行範例:
mvn compile exec:java
上述範例使用限制為 10 的?s ?p ?o
查詢,傳回圖形中最多 10 個三元 (subject-predicate-object)。若要查詢其他查詢,請將查詢取代為另一個SPARQL查詢。
範例中重複出現的結果將印出所傳回之各變數的值。Value
物件會轉換成 String
,然後列印。如果您變更查詢的 SELECT
部分,您必須修改程式碼。