4.1. 将Neo4j引入到你的项目工程中

在选择了适合你的平台的editions,edition后,只需要引入Neo4j的jars 文件到你的工程的构造路径中,你就可以在你的工程中使用Neo4j数据库了。下面的章节将展示如何完成引入,要么通过直接改变构造路径,要么使用包依赖管理。

4.1.1. 增加Neo4j的库文件到构造路径中

可以通过下面任意一种方式得到需要的jar文件:

  • 解压 Neo4j 下载的压缩包,我们需要使用的jars文件都包括在lib目录中。
  • 直接使用Maven中心仓库的jars文件。

将jars引入到你的项目工程中:

JDK tools

增加到 -classpath 中

Eclipse

  • 右键点击工程然后选择 Build Path → Configure Build Path 。在对话框中选择 Add External JARs ,浏览到Neo4j的’lib/’目录并选择所有的jar文件。
  • 另外一种方式是使用 User Libraries。

IntelliJ IDEA

看 Libraries, Global Libraries, and the Configure Library dialog了解详情。

NetBeans

  • 在工程的 Libraries 点击鼠标右键,选择 Add JAR/Folder ,浏览到Neo4j的’lib/’目录选择里面的所有jar文件。
  • 你也可以从工程节点来管理库文件。详细情况请查看管理一个工程的classpath。

4.1.2. 将Neo4j作为一个依赖添加

想总览一下主要的Neo4j构件,请查看editions。列在里面的构件都是包含实际Neo4j实现的顶级构件。

你既可以使用顶级构件也可以直接引入单个的组件。在这的范例使用的是顶级构件的方式。

Maven

Maven dependency.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<project> 
... 
 <dependencies> 
  <dependency> 
   <groupId>org.neo4j</groupId> 
   <artifactId>neo4j</artifactId> 
   <version>1.8</version> 
  </dependency> 
  ... 
 </dependencies> 
... 
</project>

参数 artifactId 可以在 editions 找到。

Eclipse and Maven

在Eclipse中开发,推荐安装插件 m2e plugin 让Maven管理classpath来代替上面的方案。

这样的话,你既可以通过Maven命令行来编译你的工程,也可以通过Maven命令自动生成一个Eclipse工作环境以便进行开发。

Ivy

确保能解决来自Maven Central的依赖问题,比如我们在你的 ivysettings.xml 文件中使用下面的配置选项:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<ivysettings> 
  <settings defaultResolver="main"/> 
  <resolvers> 
    <chain name="main"> 
      <filesystem name="local"> 
        <artifact pattern="${ivy.settings.dir}/repository/[artifact]-[revision].[ext]" /> 
      </filesystem> 
      <ibiblio name="maven_central" root="http://repo1.maven.org/maven2/" m2compatible="true"/> 
    </chain> 
  </resolvers> 
</ivysettings>

有了这个,你就可以通过增加下面这些内容到你的 ivy.xml 中来引入Neo4j:

1
2
3
4
5
<dependencies> 
  .. 
  <dependency org="org.neo4j" name="neo4j" rev="1.8"/> 
  .. 
</dependencies>

参数 name 可以在`editions`找到。

Gradle

下面的范例演示了用Gradle生成一个脚本来引入Neo4j库文件。

1
2
3
4
5
6
7
8
def neo4jVersion = "1.8"
apply plugin: 'java'
repositories { 
   mavenCentral() 
} 
dependencies { 
   compile "org.neo4j:neo4j:${neo4jVersion}"
}

参数 coordinates (在范例中的 org.neo4j:neo4j ) 可以在 editions 找到。

4.1.3. 启动和停止

为了创建一个新的数据库或者打开一个已经存在的,你需要实例化一个 EmbeddedGraphDatabase 对象:

1
2
graphDb = new GraphDatabaseFactory().newEmbeddedDatabase( DB_PATH ); 
registerShutdownHook( graphDb );

EmbeddedGraphDatabase 实例可以在多个线程中共享。然而你不能创建多个实例来指向同一个数据库。

为了停止数据库,你需要调用方法 shutdown()

1
graphDb.shutdown();

为了确保Neo4j被正确关闭,你可以为它增加一个关闭钩子方法:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
private static void registerShutdownHook( final GraphDatabaseService graphDb ) {
    // Registers a shutdown hook for the Neo4j instance so that it
    // shuts down nicely when the VM exits (even if you "Ctrl-C" the
    // running example before it's completed)
    Runtime.getRuntime().addShutdownHook( new Thread()
    {
        @Override
        public void run()
        {
            graphDb.shutdown();
        }
    } );
}

如果你只想通过 只读方式 浏览数据库,请使用 EmbeddedReadOnlyGraphDatabase

想通过配置设置来启动Neo4j,一个Neo4j属性文件可以像下面这样加载:

1
2
3
4
GraphDatabaseService graphDb = new GraphDatabaseFactory().
    newEmbeddedDatabaseBuilder( "target/database/location" ).
    loadPropertiesFromFile( pathToConfig + "neo4j.properties" ).
    newGraphDatabase();

或者你可以编程创建你自己的 Map<String, String> 来代替。

想了解更多配置设置的细节,请参考: embedded-configuration