sql-streams
sql-streams is a tool for the people that don't need or want to use an ORM but don't want to deal with the JDBC API either. It provides a light abstraction over JDBC without ever making it inaccessible.
Features
- Simple setup if you already have a Connectionor aDataSourceavailable
- Fluent API
- ResultSetis abstracted to a- Stream
- Classes that can be closed are AutoCloseable
- SQLExceptionare wrapped into- UncheckedSqlException
- Doesn't try to hide the JDBC primitives, they are never further than a method call away
- Automatic type deduction with the withmethod
Getting started
To get started, all you need to do is to add sql-streams to your dependencies:
<dependency>
    <groupId>be.bendem</groupId>
    <artifactId>sql-streams</artifactId>
    <version>[current version]</version>
</dependency> 
compile 'be.bendem:sql-streams:[current version]' 
Once it is done, you can create an instance of Sql using one of the two connect methods.
try (Sql sql = Sql.connect(datasource)) {
    Optional<String> userEmail = sql
        .first("select email from users where user_id = ?")
        .with(userId);
} 
If you are using spring-boot, checkout sql-streams-spring!
Development
You will need maven to compile and install this library
mvn install 
In addition to the SQLite and H2 tests, you can run the tests with PostgreSQL by providing a jdbc connection url:
PGURL=jdbc:postgresql:test mvn test
# or with user and password if not using peer authentication
PGURL=jdbc:postgresql://localhost/test PGUSER=test PGPASSWORD=test mvn test 
 JarCasting
 JarCasting