在Web托管时将Web应用程序与mysql数据库连接

时间:2016-09-02 04:46:19

标签: java mysql spring jelastic

我正在使用jelastic.com使用mysql数据库托管spring mvc应用程序。为此我在我的应用程序中指定了mysql数据库的用户名和密码。然后我上传了war文件。我的应用程序上传完美,但无法与数据库连接。那么请帮助我,我该怎么做才能连接?

1 个答案:

答案 0 :(得分:2)

MySQL 是一个非常受欢迎的开源数据库,供全世界的开发人员使用。在本说明中,我们将向您展示如何将 Jelastic Cloud 中托管的Java应用程序连接到此DB服务器。

请按照下面的分步说明进行操作:

  1. 登录您的Jelastic帐户。
  2. enter image description here

    1. 使用 Tomcat7 MysQL 数据库服务器创建环境(可在 SQL 部分中使用)。
    2. enter image description here

      1. 检查您的电子邮件收件箱 - 它应包含来自Jelastic平台的消息,其中包含管理凭据,用于创建的MySQL服务器(访问URL,登录名和密码),例如:
      2. enter image description here

        1. 切换回信息中心,然后点击 MySQL 节点的“在浏览器中打开”按钮。使用上述凭据登录打开的管理面板并创建新数据库(例如, mysqlconnection )。
        2. enter image description here

          1. 然后,在可扩展环境的节点列表中单击应用程序服务器旁边的配置按钮(在我们的示例中为 Tomcat 7 )。
          2. enter image description here

            1. 在打开的标签页中,在主文件夹中创建一个新的 mydb.cfg 文件,并在其中添加以下 MySQL 连接字符串:

              主机= JDBC:MySQL的:// {的MySQL NODE_ID} - {your_env_name} {hoster_domain} / {DB_NAME}。 username = {在Jelastic的电子邮件中获取} 密码= {在Jelastic的电子邮件中获取} 驱动= com.mysql.jdbc.Driver

            2. 其中 {node_id} - 您希望获得访问权限的 MySQL 服务器的容器ID。可以在仪表板上看到(在我们的示例中 277134 )。

              enter image description here

              通过这种方式,本指令中使用的 mysql 环境所需的设置如下图所示。

              enter image description here 注意:要将 MySQL 数据库连接到您的项目,您可以显然在代码(应用程序)中提及所有必需的连接设置。在给定的示例中,我们将所有设置放到文件中,该文件由我们的应用程序读取。

              1. 例如,在这里您可以看到我们的应用程序的代码,它连接到我们的 MySQL 节点。
              2. 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();
                        }
                    }
                }
                
                1. 接下来,将项目的 .war 文件上传到Jelastic Deployment Manager。例如,我们将使用 dbconnexample.war 文件(单击下载),其中包含相应的 jdbc-connector
                2. 要将您自己的项目连接到 MySQL 节点,您需要将 jdbc-connector jar文件上传到 webapps / {app_context} / WEB-展开应用程序的Jelastic环境的INF / lib 文件夹。

                  单击dbconnexample链接以下载包含项目源的包。

                  enter image description here

                  1. 将上传的WAR文件部署到环境中。
                  2. enter image description here

                    1. 现在,您可以单击应用程序服务器旁边的“在浏览器中打开”(在我们的示例中为 Tomcat 7 )。您将看到一个新窗口,其中打开了数据库按钮中的Create table“example”。单击此按钮。
                    2. enter image description here

                      1. 为了确保一切正常,请单击MySQL节点旁边的“在浏览器中打开”,然后在打开的管理面板中导航到先前创建的mysqlconnection数据库。您将看到新的示例表出现在其中,这意味着已从已部署的Java应用程序成功访问 DB
                      2. enter image description here