我正在使用jelastic.com使用mysql数据库托管spring mvc应用程序。为此我在我的应用程序中指定了mysql数据库的用户名和密码。然后我上传了war文件。我的应用程序上传完美,但无法与数据库连接。那么请帮助我,我该怎么做才能连接?
答案 0 :(得分:2)
MySQL 是一个非常受欢迎的开源数据库,供全世界的开发人员使用。在本说明中,我们将向您展示如何将 Jelastic Cloud 中托管的Java应用程序连接到此DB服务器。
请按照下面的分步说明进行操作:
在打开的标签页中,在主文件夹中创建一个新的 mydb.cfg 文件,并在其中添加以下 MySQL 连接字符串:
主机= JDBC:MySQL的:// {的MySQL NODE_ID} - {your_env_name} {hoster_domain} / {DB_NAME}。 username = {在Jelastic的电子邮件中获取} 密码= {在Jelastic的电子邮件中获取} 驱动= com.mysql.jdbc.Driver
其中 {node_id} - 您希望获得访问权限的 MySQL 服务器的容器ID。可以在仪表板上看到(在我们的示例中 277134 )。
通过这种方式,本指令中使用的 mysql 环境所需的设置如下图所示。
注意:要将 MySQL 数据库连接到您的项目,您可以显然在代码(应用程序)中提及所有必需的连接设置。在给定的示例中,我们将所有设置放到文件中,该文件由我们的应用程序读取。
DbManager.java:
package connection;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
public class DbManager {
private final static String createTable = "CREATE TABLE `example` (id INT, data VARCHAR(100))";
public Connection createConnection() throws IOException, ClassNotFoundException, SQLException {
Connection connection;
Properties prop = new Properties();
System.out.println("test");
prop.load(new FileInputStream(System.getProperty("user.home") + "/mydb.cfg"));
System.out.println("user.home: "+System.getProperty("user.home"));
String host = prop.getProperty("host").toString();
String username = prop.getProperty("username").toString();
String password = prop.getProperty("password").toString();
String driver = prop.getProperty("driver").toString();
System.out.println("host: " + host + "\username: " + username + "\password: " + password + "\ndriver: " + driver);
Class.forName(driver);
System.out.println("--------------------------");
System.out.println("DRIVER: " + driver);
connection = DriverManager.getConnection(host, username, password);
System.out.println("CONNECTION: " + connection);
return connection;
}
public void runSqlStatement() {
try {
Statement statement = createConnection().createStatement();
boolean rs = statement.execute(createTable);
} catch (IOException ex) {
Logger.getLogger(DbManager.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(DbManager.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
要将您自己的项目连接到 MySQL 节点,您需要将 jdbc-connector jar文件上传到 webapps / {app_context} / WEB-展开应用程序的Jelastic环境的INF / lib 文件夹。
单击dbconnexample链接以下载包含项目源的包。