Commit 23f75ccb by Patryk Czarnik

DELETE przed Batch

parent 7141169b
package bazy.gotowe.postgresql;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.*;
public class P10_Batch {
......@@ -11,25 +8,32 @@ public class P10_Batch {
int ID = 5000;
int ILE = 1000;
final String sql = "INSERT INTO locations(location_id, street_address, postal_code, city, country_id)"
String deleteSql = "DELETE FROM locations WHERE location_id BETWEEN ? AND ?";
final String insertSql = "INSERT INTO locations(location_id, street_address, postal_code, city, country_id)"
+ " VALUES(?,?,?,?,?)";
try(Connection c = DriverManager.getConnection(Ustawienia.URL, Ustawienia.USER, Ustawienia.PASSWD);
PreparedStatement stmt = c.prepareStatement(sql)) {
PreparedStatement deleteStmt = c.prepareStatement(deleteSql);
PreparedStatement insertStmt = c.prepareStatement(insertSql)) {
c.setAutoCommit(false); // wyłączamy automatyczne commitowanie - przechodzimy w tryb traksakcji
deleteStmt.setInt(1, ID);
deleteStmt.setInt(2, ID + ILE - 1);
int ileD = deleteStmt.executeUpdate();
System.out.println("Usunięto " + ileD + "rekordów.");
System.out.println("start");
long poczatek = System.currentTimeMillis();
for(int i=0; i<ILE; i++) {
stmt.setInt(1, ID + i);
stmt.setString(2, "Jasna 23 " + i);
stmt.setString(3, "01-234");
stmt.setString(4, "Warszawa");
stmt.setString(5, "UK");
insertStmt.setInt(1, ID + i);
insertStmt.setString(2, "Jasna 23 " + i);
insertStmt.setString(3, "01-234");
insertStmt.setString(4, "Warszawa");
insertStmt.setString(5, "UK");
stmt.addBatch();
insertStmt.addBatch();
if(i % 50 == 0) {
System.out.println();
......@@ -39,7 +43,7 @@ public class P10_Batch {
}
System.out.print("\n***");
// Wykonanie wszystkich poleceń zapamiętanych w batchu
stmt.executeBatch();
insertStmt.executeBatch();
//c.rollback();
c.commit();
......
......@@ -11,25 +11,32 @@ public class P10_Batch_wersja_bez_batch_do_porownania {
int ID = 4000;
int ILE = 1000;
final String sql = "INSERT INTO locations(location_id, street_address, postal_code, city, country_id)"
String deleteSql = "DELETE FROM locations WHERE location_id BETWEEN ? AND ?";
final String insertSql = "INSERT INTO locations(location_id, street_address, postal_code, city, country_id)"
+ " VALUES(?,?,?,?,?)";
try(Connection c = DriverManager.getConnection(Ustawienia.URL, Ustawienia.USER, Ustawienia.PASSWD);
PreparedStatement stmt = c.prepareStatement(sql)) {
PreparedStatement deleteStmt = c.prepareStatement(deleteSql);
PreparedStatement insertStmt = c.prepareStatement(insertSql)) {
c.setAutoCommit(false); // wyłączamy automatyczne commitowanie - przechodzimy w tryb traksakcji
deleteStmt.setInt(1, ID);
deleteStmt.setInt(2, ID + ILE - 1);
int ileD = deleteStmt.executeUpdate();
System.out.println("Usunięto " + ileD + "rekordów.");
System.out.println("start");
long poczatek = System.currentTimeMillis();
for(int i=0; i<ILE; i++) {
stmt.setInt(1, ID + i);
stmt.setString(2, "Jasna 14/16a lok. " + i);
stmt.setString(3, "01-234");
stmt.setString(4, "Warszawa");
stmt.setString(5, "UK");
insertStmt.setInt(1, ID + i);
insertStmt.setString(2, "Jasna 14/16a lok. " + i);
insertStmt.setString(3, "01-234");
insertStmt.setString(4, "Warszawa");
insertStmt.setString(5, "UK");
stmt.executeUpdate();
insertStmt.executeUpdate();
if(i % 50 == 0) {
System.out.println();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment