java - How to copy table from one database to another? -
i need take table 1 database , upload different database. so, create 2 separate connection . here code
connection connection1 = // set connection dbms1 statement statement = connection1.createstatement(); resultset result = statement.executequery("select * ............. "); connection connection2 = // set connection dbms2 // want upload resultset result second database statement statement2 = connection2.createstatement("insert table2 " + result); statement2.executeupdate(); the above last lines not work how can ? bottomline how reuse ready resultset
resultset ready java object . hope there way add batch or , executeupdate , but not write result set temporary space (list, csv etc.) , insert
the simplest way prepared statement insert. lets create single statement object can used run query multiple times different parameter values.
try (final statement statement1 = connection1.createstatement(), final preparedstatement insertstatement = connection2.preparestatement("insert table2 values(?, ?)")) { try (final resultset resultset = statement1.executequery("select foo, bar table1")) { while (resultset.next()) { // values table1 record final string foo = resultset.getstring("foo"); final int bar = resultset.getint("bar"); // insert row these values table2 insertstatement.clearparameters(); insertstatement.setstring(1, foo); insertstatement.setint(2, bar); insertstatement.executeupdate(); } } } the rows inserted table2 iterate through results table1, there's no need store whole result set.
you can use prepared statement's addbatch() , executebatch() methods queue inserts , send them database @ once, instead of sending separate message database each individual inserted row. forces jdbc hold pending inserts in memory locally, seems you're trying avoid. one-row-at-a-time inserts best bet in case.
Comments
Post a Comment