4 simple steps to Integrate Hibernate with Spring
Step 1: Add the entries in spring-context.xml
<bean id="DS"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
>
<property name="driverClassName"
value="com.mysql.jdbc.Driver"/>
<property name="url"
value="jdbc:mysql://localhost/webusers"/>
<property name="username"
value="root"/>
<property name="password"
value="root"/>
</bean>
<context:component-scan base-package="com.hib.javabeam"
/>
<tx:annotation-driven transaction-manager="transactionManager"
/>
Step 2: Create a class which will serve you Session Factory
package com.hib.javabeam.utils.hibernate;
import java.util.Properties;
import javax.sql.DataSource;
import org.hibernate.dialect.MySQL5Dialect;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.hibernate3.HibernateTransactionManager;
import
org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean;
import com.hib.javabeam.domain.CustomerDetails;
import com.hib.javabeam.domain.Item;
import com.hib.javabeam.domain.Order;
@Configuration
public class HibernateConfiguration {
@Value("#{DS}")
private DataSource dataSource;
@Bean
public AnnotationSessionFactoryBean
sessionFactoryBean() {
Properties props = new Properties();
props.put("hibernate.dialect",MySQL5Dialect.class.getName());
props.put("hibernate.format_sql", "true");
AnnotationSessionFactoryBean
bean = new AnnotationSessionFactoryBean();
bean.setAnnotatedClasses(new Class[]{Item.class, Order.class, CustomerDetails.class});
bean.setHibernateProperties(props);
bean.setDataSource(dataSource);
bean.setSchemaUpdate(true);
return bean;
}
@Bean
public
HibernateTransactionManager transactionManager() {
return new
HibernateTransactionManager( sessionFactoryBean().getObject() );
}
}
Step 3: Create a DAO interface
package com.hib.javabeam.dao.api;
import com.hib.javabeam.domain.CustomerDetails;
public interface CustomerDetailsDAO {
public void
addCustomerDetails(CustomerDetails custDetails);
}
Step 4 : Implements DAO interface and perform the your
operations
package com.hib.javabeam.dao.impl;
import
org.hibernate.SessionFactory;
import
org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Repository;
import
org.springframework.transaction.annotation.Transactional;
import com.hib.javabeam.dao.api.CustomerDetailsDAO;
import com.hib.javabeam.domain.CustomerDetails;
@Repository("cusomerDetailsDAO")
public class
CustomerDetailsDAOImpl implements CustomerDetailsDAO {
@Autowired
SessionFactory
sessionfactory;
@Transactional
public void
addCustomerDetails(CustomerDetails custDetails) {
sessionfactory.getCurrentSession().save(custDetails);
}
}
No comments:
Post a Comment