Java 连接多个数据库,获取数据并将数据写入新数据库

Java 连接多个数据库,获取数据并将数据写入新数据库,java,database,sqlite,jdbc,Java,Database,Sqlite,Jdbc,所以,我想这应该很容易,但我一周前刚开始学习Java,这学期必须完成一个小组项目 我已经有了一个程序,可以创建数据库、表并向其中添加数据。这并不难,因为有很多关于这个主题的教程 现在,我必须编写一个程序,能够连接到我的数据库,获取它们的数据,并将其合并到一个新的更大的数据库中,该数据库包含来自其他数据库的所有数据。 3天以来我一直找不到任何帮助 有人告诉我最简单的方法是将一个数据库转换成Java并将数据复制到第二个数据库,他为我写了一些代码: package Databse; import ja

所以,我想这应该很容易,但我一周前刚开始学习Java,这学期必须完成一个小组项目

我已经有了一个程序,可以创建数据库、表并向其中添加数据。这并不难,因为有很多关于这个主题的教程

现在,我必须编写一个程序,能够连接到我的数据库,获取它们的数据,并将其合并到一个新的更大的数据库中,该数据库包含来自其他数据库的所有数据。 3天以来我一直找不到任何帮助

有人告诉我最简单的方法是将一个数据库转换成Java并将数据复制到第二个数据库,他为我写了一些代码:

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来提高性能,但除非您有问题,否则我不会深入讨论

我刚找到