標籤:
1. 寫測試案例
說明:使用spring的原因我可以輕鬆配置Bean方便進行依賴注入
其中HibernateConfig是bean的設定檔
@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(classes=HibernateConfig.class)public class TestMessage {@Autowiredprivate SessionFactory sessionFactory;@Testpublic void test() {Session session = sessionFactory.openSession();org.hibernate.Transaction tx = session.beginTransaction();Message message = new Message("hello world");Long msgId = (Long)session.save(message);tx.commit();session.close();}}
2. 在HibernateConfig中實現dataSource和sessionFactory兩個bean
其中@ComponentScan具有自動掃描的功能
@Configuration@ComponentScanpublic class HibernateConfig {@Beanpublic DataSource dataSource(){ BasicDataSource dataSource = new BasicDataSource(); dataSource.setUrl("jdbc:mysql://localhost:3306/shopping"); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUsername("root"); dataSource.setPassword(""); return dataSource;}@Beanpublic LocalSessionFactoryBean sessionFactory(DataSource dataSource){//自動關聯其他的bean:dataSourceLocalSessionFactoryBean sfb = new LocalSessionFactoryBean();sfb.setDataSource(dataSource);sfb.setPackagesToScan(new String[] { "model" });//sfb.setMappingResources(new String[] { "Spitter.hbm.xml" });Properties props = new Properties(); props.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect"); props.setProperty("hibernate.hbm2ddl.auto", "update"); props.setProperty("hibernate.show_sql", "true");sfb.setHibernateProperties(props);return sfb;}}
其中sessoinFactory的入參,dataSource會自被關聯到dataSource,進行注入。
Spring + Hibernate 項目配置(java class版本)