【发布时间】:2019-11-16 07:49:17
【问题描述】:
我正在尝试对存储在两个单独数据库中的数据进行一些分析,其中一个是 mysql 服务器,另一个是 mssql。它们需要基于其中一列连接,因此我最终得到一个数据结构。
我尝试将数据单独存储到 python 中的 pandas 数据帧中,将它们加入 pandas,然后写入 csv 并将其加载回 java。但这做起来很麻烦,而且可扩展性也不强。
本质上,我有两个这样的查询:
MySQL
String myDriver = "org.gjt.mm.mysql.Driver";
String myUrl = "jdbc:mysql://localhost/test";
Class.forName(myDriver);
Connection conn = DriverManager.getConnection(myUrl, "root", "");
String query = "SELECT * FROM users";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
mssql
String url = "jdbc:msql://someMSsqlserver/";
Connection conn = DriverManager.getConnection(url,"","");
Statement stmt = conn.createStatement();
ResultSet rs;
rs = stmt.executeQuery("SELECT * FROM people");
我希望将它们连接到一个数据结构中。无论如何,这可以在 Java 中本地完成吗?
【问题讨论】:
-
并非没有在 java 中手工完成。您可以将表从一个数据库复制到另一个数据库吗?
-
我不太可能获得这样做的权限。可以以任何可行的方式组合结果集吗?还是需要将它们转换为其他对象然后使用?
-
MySQL 的 MariaDB 分支拥有一个 CONNECT 存储引擎,允许在 MariaDB 服务器上的 SQL 查询中使用 SQL Server 上的表。 mariadb.com/kb/en/library/… 要使用它,您需要使用 MariaDB、对 MariaDB 的管理员访问权限以及对 SQL Server 数据库的 ODBC 样式访问权限。
-
“无论如何,这可以在 Java 中本地完成吗?” 是的。现在阅读Why is “Is it possible to…” a poorly worded question?
-
不容易。卷起袖子。
标签: java mysql sql-server database