<commit_before>== Neo4j JDBC Driver image:https://travis-ci.org/larusba/neo4j-jdbc.svg?branch=master["Build Status", link="https://travis-ci.org/larusba/neo4j-jdbc"] ==

This is the Neo4j JDBC driver that supports various types of database connections.
With this driver you will be able to interact with a Neo4J database using also the new BOLT protocol.

Being a graph database, Neo4J it's not serving data in a relational way and the exact purpose of this project is to allow
projects that are using the classic JDBC connector in the relational paradigm to interact with Neo4J.

*Note*: this project is at an alpha-level stage and is currently in development so the APIs will not be stable. Please try it out and give us
feedback and suggestions but don't use it in a production environment (yet).


The driver can be used with:

* every kind of Neo4J server exposing services through the BOLT protocol (3.0+)

The driver will be implemented also for:

* HTTP connection

* direct file connection

* embedded connection


This project is composed by the following modules:

* https://github.com/larusba/neo4j-jdbc/tree/master/neo4j-jdbc-bolt[Neo4j JDBC - Bolt] - module supporting the bolt protocol

* https://github.com/larusba/neo4j-jdbc/tree/master/neo4j-jdbc[Neo4j JDBC] - the core module

=== Minimum viable snippet ===

---------------------------------------------
// Make sure Neo4j Driver is registered
Class.forName("it.larusba.neo4j.jdbc.Driver");

// Connect
Connection con = DriverManager.getConnection("jdbc:bolt://localhost");

// Querying
try (Statement stmt = con.createStatement()) {
    ResultSet rs = stmt.executeQuery("MATCH (n:User) RETURN n.name");
	while (rs.next()) {
		System.out.println(rs.getString("n.name"));
	}
}
con.close();
---------------------------------------------

=== Usage ===

* Add the JDBC driver jar file to your project

* Load the driver using the class "BoltDriver" for BOLT protocol

* Execute queries using the Cyper graph query language

=== Tests usage ===

* Run all unitary tests:
-------------------------------------------------
mvn clean test
-------------------------------------------------

* Run integration tests:
-------------------------------------------------
mvn clean -fneo4j-jdbc-bolt/pom.xml -Dtest=*IT test
-------------------------------------------------

* Run performance tests:

--------------------------------------------------
mvn clean -fneo4j-jdbc-bolt/pom.xml -Dtest=*PT test
--------------------------------------------------

WARNING: Must have a neo4j (M05) stand alone with Bolt protocol on port 7687 (default)

===== Server =====

* Install a Neo4j 3.0 server and start it with the BOLT protocol enabled

* Connect with URLs in the form jdbc:bolt://<host>:<port>/ e.g. jdbc:bolt://localhost/

* You can also set comma separated parameters in the URL for authentication, debug mode and ssl encryption, e.g. jdbc:bolt://localhost/?user=neo4j,password=<PASSWORD>,debug=true,noSsl

=== Release 3.0 Schedule ===

Milestone 01 [RELEASED]

* Basic snippet working

* Logging

* Performance tests

* M04 of Neo4j and Bolt driver

* Transactions working (both manual and autocommit)

* executeQuery + executeUpdate working

* ResultSet getters managing nodes and relationships

Milestone 02 [2016-04-19]

* ResultSet getters managing paths [DONE]

* Prepared statements [DONE]

* RC1 of Neo4j [DONE]

* RC2 Neo4j bolt driver [DONE]

* Authentication [DONE]

* Pentaho basic support DONE]

* Flattening of results [DONE]

* JSON string for nodes, relationships and paths [DONE]

Milestone 03 [2016-04-20]

* Batching [TODO]

=== Thank you ===

We'd also like to thank for their precious support:

* https://twitter.com/darthvader42[Stefan Armbruster], NEO TECHNOLOGY - Presales Engineer for EMEA

* https://twitter.com/mesirii[<NAME>], NEO TECHNOLOGY - Head of Developer Relations, Caretaker Neo4j Community

=== License ===

Copyright (c) 2016 http://www.larus-ba.it[LARUS Business Automation]

This file is part of the "LARUS Integration Framework for Neo4j".

The "LARUS Integration Framework for Neo4j" is licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.<commit_msg>Updated README.adoc<commit_after>== Neo4j JDBC Driver image:https://travis-ci.org/larusba/neo4j-jdbc.svg?branch=master["Build Status", link="https://travis-ci.org/larusba/neo4j-jdbc"] ==

This is the Neo4j JDBC driver that supports various types of database connections.
With this driver you will be able to interact with a Neo4J database using also the new BOLT protocol.

Being a graph database, Neo4J is not serving data in a relational way and the exact purpose of this project is to allow
projects that are using the classic JDBC connector in the relational paradigm to interact with Neo4J.

*Note*: this project is at an alpha-level stage and is currently in development so the APIs will not be stable. Please try it out and give us
feedback and suggestions but don't use it in a production environment (yet).


The driver can be used with:

* every kind of Neo4J server exposing services through the BOLT protocol (3.0+)

The driver will be implemented also for:

* HTTP connection

* direct file connection

* embedded connection


This project is composed by the following modules:

* https://github.com/larusba/neo4j-jdbc/tree/master/neo4j-jdbc-bolt[Neo4j JDBC - Bolt] - module supporting the bolt protocol

* https://github.com/larusba/neo4j-jdbc/tree/master/neo4j-jdbc[Neo4j JDBC] - the core module

=== Minimum viable snippet ===

---------------------------------------------
// Make sure Neo4j Driver is registered
Class.forName("it.larusba.neo4j.jdbc.Driver");

// Connect
Connection con = DriverManager.getConnection("jdbc:bolt://localhost");

// Querying
try (Statement stmt = con.createStatement()) {
    ResultSet rs = stmt.executeQuery("MATCH (n:User) RETURN n.name");
	while (rs.next()) {
		System.out.println(rs.getString("n.name"));
	}
}
con.close();
---------------------------------------------

=== Usage ===

* Add the JDBC driver jar file to your project

* Load the driver using the class "BoltDriver" for BOLT protocol

* Execute queries using the Cyper graph query language

=== Tests usage ===

* Run all unitary tests:
-------------------------------------------------
mvn clean test
-------------------------------------------------

* Run integration tests:
-------------------------------------------------
mvn clean -fneo4j-jdbc-bolt/pom.xml -Dtest=*IT test
-------------------------------------------------

* Run performance tests:

--------------------------------------------------
mvn clean -fneo4j-jdbc-bolt/pom.xml -Dtest=*PT test
--------------------------------------------------

WARNING: Must have a neo4j (RC1) stand alone with Bolt protocol on port 7687 (default)

===== Server =====

* Install a Neo4j 3.0 server and start it with the BOLT protocol enabled

* Connect with URLs in the form jdbc:bolt://<host>:<port>/ e.g. jdbc:bolt://localhost/

* You can also set comma separated parameters in the URL for authentication, debug mode and ssl encryption, e.g. jdbc:bolt://localhost/?user=neo4j,password=<PASSWORD>,debug=true,noSsl

=== Release 3.0 Schedule ===

Milestone 01 [RELEASED]

* Basic snippet working

* Logging

* Performance tests

* M04 of Neo4j and Bolt driver

* Transactions working (both manual and autocommit)

* executeQuery + executeUpdate working

* ResultSet getters managing nodes and relationships

Milestone 02 [RELEASED]

* ResultSet getters managing paths

* Prepared statements

* RC1 of Neo4j

* RC2 Neo4j bolt driver

* Authentication

* Pentaho basic support

* Flattening of results

* JSON string for nodes, relationships and paths

Milestone 03 [2016-04-23]

* Batching [IN PROGRESS]

=== Thank you ===

We'd also like to thank for their precious support:

* https://twitter.com/darthvader42[<NAME>], NEO TECHNOLOGY - Presales Engineer for EMEA

* https://twitter.com/mesirii[<NAME>], NEO TECHNOLOGY - Head of Developer Relations, Caretaker Neo4j Community

=== License ===

Copyright (c) 2016 http://www.larus-ba.it[LARUS Business Automation]

This file is part of the "LARUS Integration Framework for Neo4j".

The "LARUS Integration Framework for Neo4j" is licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
{'fraction_non_alphanumeric': 0.17890727294369718, 'fraction_numerical': 0.016307582430663017, 'mean_word_length': 2.8208276489313326, 'pattern_counts': {'":': 0, '<': 12, '<?xml version=': 0, '>': 12, 'https://': 12, 'lorem ipsum': 0, 'www.': 2, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1485072', 'n_tokens_mistral': 2539, 'n_tokens_neox': 2350, 'n_words': 912}