Hey
There is a mature java library which will do all you need - generate key (standalone or from seed), address etc.
https://github.com/bitcoinj/bitcoinjOf course additional layer like saving data in your local database you must do yourself.
Talking about blockchain, the best would be to have local bitcoin node, you may query it using rpc like you said, but you may also configure it to trigger some actions for example for incoming transaction for a given addresses. All that features are described in node’s documentation.
Specify what exactly you want your software to do - monitor given addresses? What exactly is your need? Because if you want for example generate addresses for clients and monitor if payment is sent, there are already a solutions for that.