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 aDataSource
available - Fluent API
ResultSet
is abstracted to aStream
- Classes that can be closed are
AutoCloseable
SQLException
are wrapped intoUncheckedSqlException
- 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