Skip to content

Painless low level jdbc abstraction using the java 8 stream api.

License

Notifications You must be signed in to change notification settings

bendem/sql-streams

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sql-streams

Codeship Status for bendem/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 Connection or a DataSource available
  • Fluent API
  • ResultSet is abstracted to a Stream
  • Classes that can be closed are AutoCloseable
  • SQLException are 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 with method

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

About

Painless low level jdbc abstraction using the java 8 stream api.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages