Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.29 KB | None | 0 0
  1. package com.pdclientmanager.config;
  2.  
  3.  
  4. import java.util.Properties;
  5.  
  6. import javax.sql.DataSource;
  7.  
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.context.annotation.Bean;
  10. import org.springframework.context.annotation.ComponentScan;
  11. import org.springframework.context.annotation.Configuration;
  12. import org.springframework.context.annotation.PropertySource;
  13. import org.springframework.core.env.Environment;
  14. import org.springframework.core.io.ClassPathResource;
  15. import org.springframework.core.io.Resource;
  16. import org.springframework.jdbc.datasource.DriverManagerDataSource;
  17. import org.springframework.jdbc.datasource.init.DatabasePopulator;
  18. import org.springframework.jdbc.datasource.init.DatabasePopulatorUtils;
  19. import org.springframework.jdbc.datasource.init.ResourceDatabasePopulator;
  20. import org.springframework.orm.hibernate5.HibernateTransactionManager;
  21. import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
  22. import org.springframework.transaction.annotation.EnableTransactionManagement;
  23.  
  24. @Configuration
  25. @PropertySource("classpath:database.properties")
  26. @EnableTransactionManagement
  27. @ComponentScan(basePackages = {
  28. "com.pdclientmanager"
  29. })
  30. public class HibernateConfig {
  31.  
  32. @Autowired
  33. private Environment environment;
  34.  
  35. @Bean
  36. public LocalSessionFactoryBean getSessionFactory() {
  37. LocalSessionFactoryBean factoryBean = new LocalSessionFactoryBean();
  38. factoryBean.setDataSource(dataSource());
  39. factoryBean.setPackagesToScan("com.pdclientmanager.model");
  40. factoryBean.setHibernateProperties(hibernateProperties());
  41. factoryBean.setPhysicalNamingStrategy(new SnakeCaseHibernateNamingStrategy());
  42. return factoryBean;
  43. }
  44.  
  45. public DataSource dataSource() {
  46. DriverManagerDataSource dataSource = new DriverManagerDataSource();
  47. dataSource.setDriverClassName(environment.getRequiredProperty("jdbc.driverClassName"));
  48. dataSource.setUrl(environment.getRequiredProperty("jdbc.url"));
  49. dataSource.setUsername(environment.getRequiredProperty("jdbc.username"));
  50. dataSource.setPassword(environment.getRequiredProperty("jdbc.password"));
  51. Resource initSchema = new ClassPathResource("schema.sql");
  52. DatabasePopulator databasePopulator = new ResourceDatabasePopulator(initSchema);
  53. DatabasePopulatorUtils.execute(databasePopulator, dataSource);
  54. Resource initData = new ClassPathResource("data.sql");
  55. databasePopulator = new ResourceDatabasePopulator(initData);
  56. DatabasePopulatorUtils.execute(databasePopulator, dataSource);
  57. // DatabasePopulatorUtils.execute(databasePopulator(), dataSource);
  58. return dataSource;
  59. }
  60.  
  61. // private DatabasePopulator databasePopulator() {
  62. // ResourceDatabasePopulator databasePopulator = new ResourceDatabasePopulator();
  63. // databasePopulator.setContinueOnError(true);
  64. // databasePopulator.addScript(new ClassPathResource("schema.sql"));
  65. // return databasePopulator;
  66. // }
  67.  
  68. private Properties hibernateProperties() {
  69. Properties properties = new Properties();
  70. properties.put("hibernate.dialect", environment.getRequiredProperty("hibernate.dialect"));
  71. properties.put("hibernate.show_sql", environment.getRequiredProperty("hibernate.show_sql"));
  72. properties.put("hibernate.format_sql", environment.getRequiredProperty("hibernate.format_sql"));
  73. properties.put("hibernate.c3p0.min_size", environment.getRequiredProperty("hibernate.c3p0.min_size"));
  74. properties.put("hibernate.c3p0.max_size", environment.getRequiredProperty("hibernate.c3p0.max_size"));
  75. properties.put("hibernate.c3p0.acquire_increment", environment.getRequiredProperty("hibernate.c3p0.acquire_increment"));
  76. properties.put("hibernate.c3p0.acquireRetryDelay", environment.getRequiredProperty("hibernate.c3p0.acquireRetryDelay"));
  77. properties.put("hibernate.c3p0.max_statements", environment.getRequiredProperty("hibernate.c3p0.max_statements"));
  78. return properties;
  79. }
  80.  
  81. @Bean
  82. public HibernateTransactionManager getTransactionManager() {
  83. HibernateTransactionManager transactionManager = new HibernateTransactionManager();
  84. transactionManager.setSessionFactory(getSessionFactory().getObject());
  85. return transactionManager;
  86. }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement