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.
- Simple setup if you already have a
Connectionor aDataSourceavailable - Fluent API
ResultSetis abstracted to aStream- Classes that can be closed are
AutoCloseable SQLExceptionare wrapped intoUncheckedSqlException- Doesn't try to hide the JDBC primitives, they are never further than a method call away
- Automatic type deduction with the
withmethod
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!
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