There is a basic choice you need to make between:
- Object-relational mappers (ORMs); or
- SQL-based frameworks.
Each has their merits.
ORMs seek to project an object model onto a database. The choices for this in the Java space are JPA (Java Persistence API) centric. JPA is part of the EJB 3.0 spec and includes cousins like Hibernate. It's great if your data operations are fairly straightforward and you don't need huge throughput. They tend to be complex and memory-intensive however.
SQL based frameworks allow greater throughput and more complex queries but come at a cost: different databases have different SQL dialects. People will often be familiar with SQL and JPA requires another query language. SQL can be used in anything.
In terms of SQL frameworks, much personal favourite is Ibatis.