如果我使用Java进行查询,如何组合来自mssql数据库和mysql数据库的数据?
我试图对存储在两个独立数据库中的数据进行一些分析,其中一个是mysql服务器,另一个是mssql。它们需要基于其中一列进行连接,这样我就得到了一个数据结构 我尝试将数据分别存储到python中的pandas数据帧中,将它们连接到pandas中,然后写入csv并将其加载回java。但这样做非常麻烦,而且扩展性不强 本质上,我有两个类似这样的问题: MySQL mssql如果我使用Java进行查询,如何组合来自mssql数据库和mysql数据库的数据?,java,mysql,sql-server,database,Java,Mysql,Sql Server,Database,我试图对存储在两个独立数据库中的数据进行一些分析,其中一个是mysql服务器,另一个是mssql。它们需要基于其中一列进行连接,这样我就得到了一个数据结构 我尝试将数据分别存储到python中的pandas数据帧中,将它们连接到pandas中,然后写入csv并将其加载回java。但这样做非常麻烦,而且扩展性不强 本质上,我有两个类似这样的问题: MySQL mssql 我希望将它们连接到一个数据结构中。是否可以在Java中以本机方式执行此操作?您可以尝试各种策略: 使用Java程序在服务器a上创
我希望将它们连接到一个数据结构中。是否可以在Java中以本机方式执行此操作?您可以尝试各种策略:
WHERE
子句,所以您可能正在处理所有内容。)您的JVM实例中是否有足够的RAM来容纳整个表?你需要一小时做多次,还是一周做一次?你每次做这件事要花多少时间
Pro提示:对于类似示例的查询,请使用SQL命令
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED代码>首先(在两种服务器上),这样在检索结果集时,您就不会阻止其他程序访问您的表。您应该将结果映射到POJO Arraylist,然后合并它们
您还可以将它们放在第三个数据库中,然后您就可以执行任何sql查询。不必手动在java中执行。您能将表从一个数据库复制到另一个数据库吗?我不可能获得这样做的权限。结果集可以以任何可行的方式组合吗?或者需要将它们转换为其他对象,然后使用它们吗?MySQL的MariaDB fork拥有一个连接存储引擎,这让人产生了一种错觉,即SQL Server上的表可用于MariaDB Server上的SQL查询。要使用它,您需要使用MariaDB、MariaDB的管理员访问权限和SQL Server数据库的ODBC样式的访问权限。“这是否可以用Java本机实现?”是的。现在读起来不容易。卷起袖子。
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);
String url = "jdbc:msql://someMSsqlserver/";
Connection conn = DriverManager.getConnection(url,"","");
Statement stmt = conn.createStatement();
ResultSet rs;
rs = stmt.executeQuery("SELECT * FROM people");