Kengkaj Sathianpantarit wrote:I recommend you to read API documentation.
I agree with Kengkaj, reading the docs makes it so much clearer and this is a big question to answer in a post.
But because this is JavaRanch, I will answer a little bit to help you get started.
1. It depends on which version of Spring and what version of Hibernate you are using.
If you are using the latest versions of both, then my answer is to use neither. Just inject a SessionFactory into your DAO classes.
If you are using Hibernate 3.0 and before where you had to use session.beginTransaction() and try/catches, then I recommend you use the HibernateTemplate.
Maybe really older versions using the DAOSupport class might have made sense, but once you use it you are even more tightly coupled to Spring because your class is now extending a Spring specific class.