Как подключиться к локально установленному серверу neo4j с использованием Java - программирование
Подтвердить что ты не робот

Как подключиться к локально установленному серверу neo4j с использованием Java

Я новичок в Neo4J и не смог найти ответ на мой вопрос, несмотря на часы работы в Google.

До сих пор я следил за учебниками, и теперь у меня есть общее представление о том, как и когда использовать Neo4j. Теперь я собираюсь начать модифицировать свой код hello-world и подключиться к серверу Neo4J, локально установленному на моей машине, доступному через http://127.0.0.1:7474.

Исходное соединение (с использованием встроенной базы данных):

GraphDatabaseService gdb = new EmbeddedGraphDatabase("c:\\helloworld\\data\\graph.db");

Вопрос в том, есть ли способ изменить эту строку для подключения к моей базе данных "server" в c:\neo4j\data\graph.db? Сервер работает в настоящее время как служба Windows, и я могу просматривать его базу данных с помощью инструмента веб-администратора. В настоящее время я не заинтересован в использовании REST API, так как сервер и клиентское приложение работают на одном компьютере.

Я чувствую, что мне не хватает чего-то очевидного здесь...

4b9b3361

Ответ 1

Служба Windows предоставляет интерфейс REST.

Вложенный интерфейс совершенно другой - вы указываете его на структуру файловой системы базы данных, а затем получаете доступ к ней через вызовы методов Java.

Если вы оба одновременно работаете, указывая на одни и те же данные, тогда могут произойти плохие вещи (на самом деле, я думаю, он обнаруживает это и предотвращает его). Поэтому вам, вероятно, нужно остановить службу и/или сделать резервную копию данных из этого экземпляра в другой каталог. Затем отредактируйте конструктор EmbeddedGraphDatabase, чтобы указать на этот каталог.

В руководстве описывается встроенный интерфейс Java, как вы, вероятно, видели. См. Также этот раздел, в котором кратко упоминается довольно приятный веб-интерфейс управления.

Ответ 2

Я не смог найти какой-либо примерный код в обертке, поэтому вот что я сделал.

EmbeddedGraphDatabase graphDb = new EmbeddedGraphDatabase("C:\\neo4j\\data\\graph.db");
WrappingNeoServerBootstrapper srv = new WrappingNeoServerBootstrapper(graphDb);
srv.start();
try {
    while (System.in.read() != 46) {
    // wait until we send a period (.) to kill the server
    }
} catch (IOException e) {}
srv.stop();

Это позволит вам посетить localhost: 7474 и увидеть инструмент webadmin так же, как запустить сервер, но и продолжить свой обычный Java-код (напишите свой собственный простой API, используя входной поток для чтения команд).

Ответ 3

Я знаю его старый пост, но все же добавляю свой ответ. Вы можете использовать Neo4jConnection. Пример кода

Neo4jConnection connect=null;
connect = new Driver(). connect(DB_URL, new Properties());
ResultSet resultSet=connect.createStatement().executeQuery("YOUR QUERY")

Ответ 4

Завершено использование Джерси-клиента HttpBasicAuthFilter

Ваши параметры должны быть примерно такими:

            public static final String DATABASE_ENDPOINT = "http://localhost:7474/db/data";

            public static final String DATABASE_USERNAME = "neo4j";

            public static final String DATABASE_PASSWORD = "3c0a0a6ea1sdsdsdsdsdsdsdsdf2a94d";

        private String callRest(String query) {
                final String cypherUrl = ENDPOINT + "/cypher";
                Client c = Client.create();
                c.addFilter(new HTTPBasicAuthFilter(USERNAME, PASSWORD));
                WebResource resource = c.resource(cypherUrl);
                String request = "{\"query\":\"" + query + "\"}";
                ClientResponse response = resource.accept(MediaType.APPLICATION_JSON)
                        .type(MediaType.APPLICATION_JSON).entity(request)
                        .post(ClientResponse.class);
                String object = response.getEntity(String.class);
                response.close();
                return object;
        }

Последний клиент в Джерси можно найти, добавив его в ваш mvn pom, если он еще не находится в вашем дереве зависимостей.

            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-client</artifactId>
                <version>1.18.3</version>
            </dependency>

Смотрите: https://stackoverflow.com/posts/28303766