Я начинаю программировать на Java. Я пытаюсь извлечь данные из одной таблицы базы данных oracle и вставить в другую таблицу базы данных, используя код java, и это успешно. Однако я не знаю, для реализации логики вставки пакета и увеличения размера выборки в этом коде. Любой может помочь. Моя цель - собрать 100 строк и вставить 100 строк в одну поездку туда и обратно, а не одну за другой. Заранее спасибо.выберите одну базу данных оракула и пакетную вставку в другую базу данных оракула с помощью java
import java.sql.*;
import java.io.*;
import java.util.*;
public class Dbtodb {
public static void main(String[] args) {
try
{
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@ipaddress1:port1:server1","user1","password1");
Connection con1 = DriverManager.getConnection("jdbc:oracle:thin:@ipaddress2:port2:server2","user2","password2");
String sql = "INSERT INTO test_GROUPS("+ "GROUP_NO,"+ "GROUP_NAME,"+ "BUYER,"+ " MERCH,"+" DIVISION)"+ "VALUES(?,?,?,?,?)";
Statement statement =
con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
PreparedStatement pstmt = con1.prepareStatement(sql);
ResultSet rs = statement.executeQuery("SELECT * FROM groups");
while (rs.next())
{
int gpnum = rs.getInt(1);
String gpname = rs.getString(2);
int byr = rs.getInt(3);
int merch = rs.getInt(4);
int divisn = rs.getInt(5);
pstmt.setInt(1, gpnum);
pstmt.setString(2, gpname);
pstmt.setInt(3, byr);
pstmt.setInt(4, merch);
pstmt.setInt(5, divisn);
pstmt.executeUpdate();
}
con.close();
con1.close();
}
catch (SQLException e)
{
System.out.println("could not get JDBC connection: " +e);
}
}
}
Не ответ, но: вы не следует смешивать 'SELECT *' с получением элементов из 'ResultSet' по индексу. Порядок, в котором 'SELECT *' возвращает столбцы в 'ResultSet', не гарантируется. Или явно укажите столбцы в строке запроса, либо используйте версии 'rs.getInt()' и т. Д., Которые принимают имена столбцов. – dcsohl