Heroku-使用postgresql代替mysql的代码有什么变化
我在Spring/Maven中使用MySQL db、Tomcat编写了网站。我决定使用Heroku免费帐户,因为我在一个地方拥有域、db和Java。问题是Heroku免费使用postgresql,但mysql是付费的。我想请您提供帮助,并清楚地解释我应该在应用程序代码(pom.xml、hibernate.properties等)中更改哪些内容,以使用postgresql而不是mysql。下面我展示了我认为应该更改的文件。我必须添加任何新文件吗?我请求你的原谅Heroku-使用postgresql代替mysql的代码有什么变化,mysql,postgresql,hibernate,maven,heroku,Mysql,Postgresql,Hibernate,Maven,Heroku,我在Spring/Maven中使用MySQL db、Tomcat编写了网站。我决定使用Heroku免费帐户,因为我在一个地方拥有域、db和Java。问题是Heroku免费使用postgresql,但mysql是付费的。我想请您提供帮助,并清楚地解释我应该在应用程序代码(pom.xml、hibernate.properties等)中更改哪些内容,以使用postgresql而不是mysql。下面我展示了我认为应该更改的文件。我必须添加任何新文件吗?我请求你的原谅 ***POM.XML*** jdb
***POM.XML***
jdbc.driver.class.name =com.mysql.jdbc.Driver
jdbc.url =jdbc:mysql://localhost:3306/web_users?useSSL=false&characterEncoding=UTF-8
jdbc.user.name =root
jdbc.password =root
hibernate.hbm2ddl.auto =update
hibernate.show_sql =true
hibernate.format_sql =true
hibernate.generate_statistics=false
***HibernateConfig.java***
@Configuration
@PropertySource(value = {"classpath:hibernate.properties"})
@EnableJpaRepositories(basePackages = "com.website.dao")
public class HibernateConfig {
@Autowired
private Environment environment;
// 1. create DataSource
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(environment.getRequiredProperty("jdbc.driver.class.name"));
dataSource.setPassword(environment.getRequiredProperty("jdbc.password"));
dataSource.setUsername(environment.getRequiredProperty("jdbc.user.name"));
dataSource.setUrl(environment.getRequiredProperty("jdbc.url"));
return dataSource;
}
// 2. EntityManagerFactory
@Bean
public EntityManagerFactory entityManagerFactory() {
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
Properties properties = new Properties();
properties.put("hibernate.hbm2ddl.auto", environment.getProperty("hibernate.hbm2ddl.auto"));
properties.put("hibernate.show_sql", environment.getProperty("hibernate.show_sql"));
properties.put("hibernate.format_sql", environment.getProperty("hibernate.format_sql"));
properties.put("hibernate.generate_statistics", environment.getProperty("hibernate.generate_statistics"));
LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();
factoryBean.setPackagesToScan("com.website.model");
factoryBean.setJpaVendorAdapter(vendorAdapter);
factoryBean.setJpaProperties(properties);
factoryBean.setDataSource(dataSource());
factoryBean.afterPropertiesSet();
return factoryBean.getObject();
}
我认为你正确地回答了自己的问题。我建议您尝试编辑上面概述的文件,如果您还需要做其他事情,请添加这些信息作为对这个问题的回答。我觉得这很对,太好了!实际上,问题是我应该更改什么,应该编写什么,从代码中删除什么?