A reactive Java library for efficient, functional composition of database calls using JDBC and RxJava Observables.
RxJava-JDBC is a Java library that integrates JDBC with RxJava, enabling reactive and functional programming for database operations. It allows developers to compose SQL queries as Observable sequences, supporting lazy execution, automatic result mapping, and transactional workflows. The library simplifies traditional JDBC boilerplate while adding the power of RxJava's backpressure, concurrency, and composition capabilities.
Java developers building data-intensive applications who want to adopt reactive programming patterns for database interactions. It is particularly useful for those already using RxJava and seeking a more declarative, composable alternative to standard JDBC.
Developers choose RxJava-JDBC for its concise API, seamless integration with RxJava's Observable model, and support for functional composition of database calls. It reduces boilerplate, enables efficient resource usage through lazy query execution, and provides advanced features like automatic mapping and transaction management out of the box.
Efficient execution and functional composition of database calls using jdbc and RxJava Observables
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows chaining and dependency management between database operations using RxJava Observables, enabling concise, declarative code as shown in the README's composition examples.
Supports auto-mapping of result sets to typed tuples, annotated interfaces, or concrete classes via reflection, simplifying data retrieval without manual ResultSet handling.
Queries can be partially run or skipped based on subscription cancellations, optimizing resource usage by avoiding unnecessary database calls.
Simplifies handling of CLOBs and BLOBs with methods to insert and read them as Strings, Readers, byte arrays, or InputStreams, reducing boilerplate code.
The library's Todo list admits callable statements are not implemented, limiting use cases that rely on database stored procedures.
Auto-mapping uses reflection, which the README acknowledges may introduce overhead compared to manual mapping, potentially impacting performance-sensitive applications.
Tied to RxJava 1.x with a separate library for RxJava 2.x, creating fragmentation and requiring additional effort for teams on newer reactive stacks.