There are really two steps:
1st - select a relational object mapper (ORM). It could be a JPA provider, a JDO provider, or something like Hibernate. JPA is a specification supported by the language for mapping between your Java objects and your database. I also used Hibernate (Hibernate is confusing because it is both a standalone ORM and a JPA provider), and it worked well for me. Your ORM will describe which tables / rows store classes / fields of Java objects, and it will also provide transactions and a mechanism for saving changes to a Java object when it is convenient for your application.
If you are thinking about XML storage, you can look at DataNucleus as a JPA / JDO provider that has early xml storage support.
2nd is to select a binding structure. If you use Swing, then the NetBeans platform is a natural choice, as trashgod suggested. NetBeans has a host of technologies designed to facilitate application development, including binding technologies. If you use the NetBeans IDE, you get a built-in GUI creation tool. I have no experience with a GUI tool, so I canβt say much more than it exists.
If you are making a direct Swing rich client into a database, you do not need to use DAO. DAOs are useful in multilevel applications where there is code on both the client and the server. If you use all your logic on the client, and the server is just a database, you do not need DAO.
source share