Heroku-使用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

我在Spring/Maven中使用MySQL db、Tomcat编写了网站。我决定使用Heroku免费帐户,因为我在一个地方拥有域、db和Java。问题是Heroku免费使用postgresql,但mysql是付费的。我想请您提供帮助,并清楚地解释我应该在应用程序代码(pom.xml、hibernate.properties等)中更改哪些内容,以使用postgresql而不是mysql。下面我展示了我认为应该更改的文件。我必须添加任何新文件吗?我请求你的原谅

***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();
}

我认为你正确地回答了自己的问题。我建议您尝试编辑上面概述的文件,如果您还需要做其他事情,请添加这些信息作为对这个问题的回答。我觉得这很对,太好了!实际上,问题是我应该更改什么,应该编写什么,从代码中删除什么?