Java 连接多个数据库,获取数据并将数据写入新数据库
所以,我想这应该很容易,但我一周前刚开始学习Java,这学期必须完成一个小组项目 我已经有了一个程序,可以创建数据库、表并向其中添加数据。这并不难,因为有很多关于这个主题的教程 现在,我必须编写一个程序,能够连接到我的数据库,获取它们的数据,并将其合并到一个新的更大的数据库中,该数据库包含来自其他数据库的所有数据。 3天以来我一直找不到任何帮助 有人告诉我最简单的方法是将一个数据库转换成Java并将数据复制到第二个数据库,他为我写了一些代码:Java 连接多个数据库,获取数据并将数据写入新数据库,java,database,sqlite,jdbc,Java,Database,Sqlite,Jdbc,所以,我想这应该很容易,但我一周前刚开始学习Java,这学期必须完成一个小组项目 我已经有了一个程序,可以创建数据库、表并向其中添加数据。这并不难,因为有很多关于这个主题的教程 现在,我必须编写一个程序,能够连接到我的数据库,获取它们的数据,并将其合并到一个新的更大的数据库中,该数据库包含来自其他数据库的所有数据。 3天以来我一直找不到任何帮助 有人告诉我最简单的方法是将一个数据库转换成Java并将数据复制到第二个数据库,他为我写了一些代码: package Databse; import ja
package Databse;
import java.sql.*;
import java.util.HashMap;
import java.util.Vector;
import java.util.Map;
/**
*
* @autho
*/
public class Join {
public static void main( String args[] ) {
Connection c;
Statement stmt;
try {
Class.forName("org.sqlite.JDBC");
c = DriverManager.getConnection("jdbc:sqlite:test.db");
c.setAutoCommit(false);
System.out.println("Opened database successfully");
stmt = c.createStatement();
Vector<HashMap<String, String>> alleDaten = new Vector<HashMap<String, String>>();
try (ResultSet rs = stmt.executeQuery( "SELECT * FROM FILE;" )) {
while ( rs.next() ) {
int id = rs.getInt("id");
String name = rs.getString("name");
String extension = rs.getString("extension");
String path = rs.getString("path");
String timeStamp = rs.getString("timeStamp");
HashMap<String, String> datensatz = new HashMap<String, String>();
datensatz.put("name", name);
datensatz.put("extension", extension);
datensatz.put("path", path );
datensatz.put("timestamp", timeStamp);
alleDaten.add(datensatz);
}
}
stmt.close();
c.close();
} catch ( ClassNotFoundException | SQLException e ) {
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
System.exit(0);
}
System.out.println("Operation done successfully");
}
他告诉我现在必须遍历向量。
类似于forint i=0;i有人能帮我吗?如果SqlLite像大多数这样的数据库一样工作,您可以打开第二个连接,连接到第二个数据库 您不需要将所有记录拉入Java集合。从源结果集中获取下一条记录时,可以将其插入到目标中。假设您的第二个连接是c2,并且insert there的语句是stmt2。。。 然后,在循环内部,您可以这样做—您不需要首先将所有内容读入Java集合
StringBuilder sb = new StringBuilder("insert into MY_DEST_TBL values ");
//--- Build this into a proper insert SQL
stmt2 = c2.createStatement();
stmt2.executeUpdate(sb.toString());
如果您有大量的数据,那么您应该使用PreparedStatement和executeBatch来提高性能,但除非您有问题,否则我不会深入讨论
我刚找到