从Java独立应用程序连接到Google云sql



我想编写一个独立的java应用程序来连接到google cloud sql-MySql数据库。我可以找到应用程序客户端的示例,但不能找到独立的java应用程序的示例。

当我尝试这样做时,我得到了以下错误。

Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:google:mysql://IP:Instance_name?user=user_name");
Statement st = con.createStatement();
ResultSet rs = con.createStatement().executeQuery("SELECT 1 + 1");

它失败并出现错误:

未找到适用于jdbc:google:mysql:.. 的驱动程序

在他们要求启用mysql连接器的地方,我看到了一些答案。但应用程序引擎项目就是这样。如何使用独立应用程序?

您只需使用标准的mysql连接器即可连接到云sql实例:例如:

DriverManager.getConnection("jdbc:mysql://IP:Instance_name?user=user_name");

您可以查看此链接https://cloud.google.com/sql/docs/external了解更多信息。

我们可以简单地使用标准的mysql-java连接器连接到云sql,形成一个独立的java应用程序。

按照下面的代码片段进行操作。这将帮助您无缝连接到数据库。

class.forName(com.mysql.jdbc.Driver);
String connectionUrl = "jdbc:mysql//<public-ip>/<database>?useSSL=false";
Connection conn = DriverManager.getConnection(connectionUrl, user, password);

在你这样做之前,请确保你从互联网上获得你的ipad地址,并在以下路径下添加相同的地址:谷歌云->sql->sqlinstance->连接->联网->授权网络。

点击此处查看谷歌云mysql配置

在<>内部编辑在运行代码之前

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.SQLNonTransientConnectionException;
import java.sql.Statement;
/**
* A sample app that connects to a Cloud SQL instance and lists all available tables 
in a database.
*/
public class Cloud_sql {
public static void main(String[] args) throws SQLNonTransientConnectionException 
,IOException, SQLException {
String instanceConnectionName = <Your instanceConnectionName>;
String databaseName = <Database name from which u want to list tables>;

String IP_of_instance = <IP address of the instance>;
String username = <mysql username>;
String password = <mysql password>;
String jdbcUrl = String.format(
    "jdbc:mysql://%s/%s?cloudSqlInstance=%s"
        + "&socketFactory=com.google.cloud.sql.mysql.SocketFactory&useSSL=false",
IP_of_instance,
    databaseName,
    instanceConnectionName);
Connection connection = DriverManager.getConnection(jdbcUrl, username, password);
try (Statement statement = connection.createStatement()) {
  ResultSet resultSet = statement.executeQuery("SHOW TABLES");
  while (resultSet.next()) {
    System.out.println(resultSet.getString(1));
  }
}catch(Exception e){
  e.printStackTrace();
}
}
}

相关内容

  • 没有找到相关文章

最新更新