java - 在 Java 中使用 mysql 查询连接两个数据库?

标签 java mysql

我正在尝试在 java 应用程序中运行 SQLquery。 sqlquery 连接两个数据库(不在同一服务器上)。我在这里所做的是否正确:

公共(public)函数有:

    private DatabaseData externaldb = new DatabaseData("com.mysql.jdbc.Driver",
 "...", "...", "...");
    private DatabaseData localdb = new DatabaseData("com.mysql.jdbc.Driver",
 "...", "...", "...");
    private Connection externalconnection = null;
    private Connection localconnection = null;

    function(externalconnection, c_id, u_d);

被调用的函数是:

private int function(Connection externalconnection, String c_Id, String u_Id) 
    throws SQLException{
                String query ="SELECT A.v_id, COUNT(I.v_id) AS v_count "
                        + "FROM externaldb.video_interaction I"
                        + " INNER JOIN localdb.video_additional A ON A.v_id = I.v_id"
                        + " WHERE I.c_id='" + c_id + "' AND I.user'" + u_Id +  "';";

                Statement stmt = externaldb.createStatement();
                ResultSet rs = stmt.executeQuery(query);

                int counter = 0;

                if (rs.next()){
                    counter = rs.getInt("video_count");
                }

                return counter;

            }

谢谢!

最佳答案

您有两个连接,您有两个数据库。服务器本地必须能够访问外部,外部也必须能够访问本地。然后,创建FEDERATED表,例如:

CREATE TABLE federated_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';

(在 MySQL 5.0.13 之前,使用 COMMENT 而不是 CONNECTION。)

来源:MySQL Cross Server Select Query

更多信息:https://dev.mysql.com/doc/refman/5.7/en/federated-create-server.html

关于java - 在 Java 中使用 mysql 查询连接两个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44519538/

相关文章:

java - 从 Web 应用程序运行 Ant 任务 - JBoss 部署工具

java - Java 是否检查 "&&"(和)运算符中的所有参数,即使其中一个参数为假?

Java 自动矢量化示例

MySQL group-by 与逗号分隔列表

php - App Inventor/PHP 应用程序停止在 Note 4 上运行

mysql - 带有索引和约束的 Postgres UUID

java - click方法中的动态按钮和getTag

java - 如何使用 JSF 1.1 标签设置 jsp 页面的标题

php - mysql,从表单数据构建长的 sql 查询。 (php)

php - 使 SQL 查询安全 - 从 $_POST 获取值