I would look at MyBatis (formerly iBatis).
MyBatis is a first-class persistence system with support for custom SQL, stored procedures, and advanced mappings. MyBatis eliminates almost all JDBC code and manually adjusts parameters and searches for results. MyBatis can use simple XML or annotations for configuration primitives and maps, map interfaces and Java POJOs (regular old Java objects) for database entries.
source share