在JPAConfiguration.java中,我使用以下参数来连接mySQL数据库。但这不起作用。我的应用程序和mysql服务器是OpenShift上的相同应用程序。
private final String DATABASE_DRIVER = "com.mysql.jdbc.Driver";
private final String DATABASE_URL = "jdbc:mysql://"
+ System.getenv("OPENSHIFT_MYSQL_DB_HOST") + ":"
+ System.getenv("OPENSHIFT_MYSQL_DB_PORT") + "/"
+ "capsule";//System.getenv("OPENSHIFT_APP_NAME");
private final String DATABASE_USERNAME = System.getenv("OPENSHIFT_MYSQL_DB_USERNAME");
private final String DATABASE_PASSWORD = System.getenv("OPENSHIFT_MYSQL_DB_PASSWORD");
请给我一些想法。非常感谢。
答案 0 :(得分:1)
对于Spring JPA应用程序,您必须定义以下数据源
@Bean(destroyMethod = "close")
public DataSource dataSource() {
String username = System.getenv("OPENSHIFT_MYSQL_DB_USERNAME");
String password = System.getenv("OPENSHIFT_MYSQL_DB_PASSWORD");
String host = System.getenv("OPENSHIFT_MYSQL_DB_HOST");
String port = System.getenv("OPENSHIFT_MYSQL_DB_PORT");
String databaseName = System.getenv("OPENSHIFT_APP_NAME");
String url = "jdbc:mysql://" + host + ":" + port + "/"+databaseName;
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("org.MYSQL.Driver");
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setTestOnBorrow(true);
dataSource.setTestOnReturn(true);
dataSource.setTestWhileIdle(true);
dataSource.setTimeBetweenEvictionRunsMillis(1800000);
dataSource.setNumTestsPerEvictionRun(3);
dataSource.setMinEvictableIdleTimeMillis(1800000);
dataSource.setValidationQuery("SELECT version()");
return dataSource;
}
如果您想查看完整的工作示例,请查看我的github存储库https://github.com/shekhargulati/forumapp