Готовое решение для асинхронной работы с базой, есть ли?
На гитхабе целая куча обёрток для jdbc-драйверов, эмулирующих асинхронность с помощью пула потоков. Но чего-то действительно хорошего и общепризнанного я тоже не встречал. Есть надежда на обещанный в Java 10 асинхронный JDBC, но пока самый гармоничный способ асинхронной работы с БД - это заворачивать запросы в CompletableFuture.
Уже советовали RxJava, можно применять её. Оборачивать подключения в Observable и пошло-поехало. Советую посмотреть в её сторону, как минимум.