<commit_before>rxjava-jdbc
============
<a href="https://travis-ci.org/davidmoten/rxjava-jdbc"><img src="https://travis-ci.org/davidmoten/rxjava-jdbc.svg"/></a><br/>
<a href="https://scan.coverity.com/projects/4834"><img src="https://scan.coverity.com/projects/4834/badge.svg?flat=1"/></a><br/>
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.github.davidmoten/rxjava-jdbc/badge.svg?style=flat)](https://maven-badges.herokuapp.com/maven-central/com.github.davidmoten/rxjava-jdbc)

Efficient execution, concise code, and functional composition of database calls
using JDBC and [RxJava](https://github.com/Netflix/RxJava/wiki) [Observable](http://netflix.github.io/RxJava/javadoc/rx/Observable.html). 

Status: Released to Maven Central

[Release Notes](https://github.com/davidmoten/rxjava-jdbc/releases)

Features
--------------------------
* Functionally compose database queries run sequentially or in parallel 
* Queries may be only partially run or indeed never run due to subscription cancellations thus improving efficiency
* Concise code
* Queries can depend on completion of other Observables and can be supplied parameters through Observables.
* Method chaining just leads the way (once you are on top of the RxJava api of course!)
* All the RxJava goodness!
* Automatically maps query result rows into typed tuples or your own classes
* CLOB and BLOB handling is simplified greatly

Maven site reports are [here](http://davidmoten.github.io/rxjava-jdbc/index.html) including [javadoc](http://davidmoten.github.io/rxjava-jdbc/apidocs/index.html).

Table of Contents
------------------------

- [rxjava-jdbc](#)
	- [Features](#)
	- [Todo](#todo)
	- [Build instructions](#build-instructions)
	- [Getting started](#getting-started)
	- [Query types](#query-types)
	- [Functional composition of JDBC calls](#functional-composition-of-jdbc-calls)
	- [About toBlocking](#about-toblocking)
	- [Dependencies](#dependencies)
	- [Mixing explicit and Observable parameters](#mixing-explicit-and-observable-parameters)
	- [Passing multiple parameter sets to a query](#passing-multiple-parameter-sets-to-a-query)
	- [Named parameters](#named-parameters)
	- [Processing a ResultSet](#processing-a-resultset)
	- [Mapping](#mapping)
	- [Explicit mapping](#explicit-mapping)
	- [Automap](#automap)
		- [Automap using an interface](#automap-using-an-interface)
		- [Automap using a concrete class](#automap-using-a-concrete-class)
	- [Auto mappings](#auto-mappings)
	- [Tuples](#tuples)
		- [Tuple2](#tuple2)
		- [TupleN](#tuplen)
	- [Returning generated keys](#returning-generated-keys)
	- [Large objects support](#large-objects-support)
		- [Insert a Clob](#insert-a-clob)
		- [Insert a Null Clob](#insert-a-null-clob)
		- [Read a Clob](#read-a-clob)
		- [Insert a Blob](#insert-a-clob)
		- [Insert a Null Blob](#insert-a-null-blob)
		- [Read a Blob](#read-a-blob)
	- [Compose](#compose)
	- [Transactions](#transactions)
		- [Transactions as dependency](#transactions-as-dependency)
		- [onNext Transactions](#onNext-transactions)
	- [Asynchronous queries](#asynchronous-queries)
	- [Backpressure](#backpressure)
	- [Logging](#logging)
	- [Database Connection Pools](#database-connection-pools)
	- [Using a custom connection pool](#using-a-custom-connection-pool)
	- [Use a single Connection](#use-a-single-connection)
	- [Note for SQLite Users](#note-for-sqlite-users)

Todo
------------
* Callable statements

Build instructions
-------------------
```
git clone https://github.com/davidmoten/rxjava-jdbc.git
cd rxjava-jdbc
mvn clean install
```

Getting started
--------------------
Include this maven dependency in your pom (available in Maven Central):
```xml
<dependency>
    <groupId>com.github.davidmoten</groupId>
    <artifactId>rxjava-jdbc</artifactId>
    <version>0.7.4</version>
</dependency>
```

After using [RxJava](https://github.com/Netflix/RxJava/wiki) on a work project and being very impressed with <commit_msg>update version in README<commit_after>rxjava-jdbc
============
<a href="https://travis-ci.org/davidmoten/rxjava-jdbc"><img src="https://travis-ci.org/davidmoten/rxjava-jdbc.svg"/></a><br/>
<a href="https://scan.coverity.com/projects/4834"><img src="https://scan.coverity.com/projects/4834/badge.svg?flat=1"/></a><br/>
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.github.davidmoten/rxjava-jdbc/badge.svg?style=flat)](https://maven-badges.herokuapp.com/maven-central/com.github.davidmoten/rxjava-jdbc)

Efficient execution, concise code, and functional composition of database calls
using JDBC and [RxJava](https://github.com/Netflix/RxJava/wiki) [Observable](http://netflix.github.io/RxJava/javadoc/rx/Observable.html). 

Status: Released to Maven Central

[Release Notes](https://github.com/davidmoten/rxjava-jdbc/releases)

Features
--------------------------
* Functionally compose database queries run sequentially or in parallel 
* Queries may be only partially run or indeed never run due to subscription cancellations thus improving efficiency
* Concise code
* Queries can depend on completion of other Observables and can be supplied parameters through Observables.
* Method chaining just leads the way (once you are on top of the RxJava api of course!)
* All the RxJava goodness!
* Automatically maps query result rows into typed tuples or your own classes
* CLOB and BLOB handling is simplified greatly

Maven site reports are [here](http://davidmoten.github.io/rxjava-jdbc/index.html) including [javadoc](http://davidmoten.github.io/rxjava-jdbc/apidocs/index.html).

Table of Contents
------------------------

- [rxjava-jdbc](#)
	- [Features](#)
	- [Todo](#todo)
	- [Build instructions](#build-instructions)
	- [Getting started](#getting-started)
	- [Query types](#query-types)
	- [Functional composition of JDBC calls](#functional-composition-of-jdbc-calls)
	- [About toBlocking](#about-toblocking)
	- [Dependencies](#dependencies)
	- [Mixing explicit and Observable parameters](#mixing-explicit-and-observable-parameters)
	- [Passing multiple parameter sets to a query](#passing-multiple-parameter-sets-to-a-query)
	- [Named parameters](#named-parameters)
	- [Processing a ResultSet](#processing-a-resultset)
	- [Mapping](#mapping)
	- [Explicit mapping](#explicit-mapping)
	- [Automap](#automap)
		- [Automap using an interface](#automap-using-an-interface)
		- [Automap using a concrete class](#automap-using-a-concrete-class)
	- [Auto mappings](#auto-mappings)
	- [Tuples](#tuples)
		- [Tuple2](#tuple2)
		- [TupleN](#tuplen)
	- [Returning generated keys](#returning-generated-keys)
	- [Large objects support](#large-objects-support)
		- [Insert a Clob](#insert-a-clob)
		- [Insert a Null Clob](#insert-a-null-clob)
		- [Read a Clob](#read-a-clob)
		- [Insert a Blob](#insert-a-clob)
		- [Insert a Null Blob](#insert-a-null-blob)
		- [Read a Blob](#read-a-blob)
	- [Compose](#compose)
	- [Transactions](#transactions)
		- [Transactions as dependency](#transactions-as-dependency)
		- [onNext Transactions](#onNext-transactions)
	- [Asynchronous queries](#asynchronous-queries)
	- [Backpressure](#backpressure)
	- [Logging](#logging)
	- [Database Connection Pools](#database-connection-pools)
	- [Using a custom connection pool](#using-a-custom-connection-pool)
	- [Use a single Connection](#use-a-single-connection)
	- [Note for SQLite Users](#note-for-sqlite-users)

Todo
------------
* Callable statements

Build instructions
-------------------
```
git clone https://github.com/davidmoten/rxjava-jdbc.git
cd rxjava-jdbc
mvn clean install
```

Getting started
--------------------
Include this maven dependency in your pom (available in Maven Central):
```xml
<dependency>
    <groupId>com.github.davidmoten</groupId>
    <artifactId>rxjava-jdbc</artifactId>
    <version>0.7.7</version>
</dependency>
```

After using [RxJava](https://github.com/Netflix/RxJava/wiki) on a work project and being very impressed with 
{'fraction_non_alphanumeric': 0.1717465536866068, 'fraction_numerical': 0.0035411660553939547, 'mean_word_length': 4.3002680965147455, 'pattern_counts': {'":': 0, '<': 35, '<?xml version=': 0, '>': 35, 'https://': 20, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '843333', 'n_tokens_mistral': 2704, 'n_tokens_neox': 2475, 'n_words': 551}