Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
JDBC-illesztőprogram letöltése
Az SQL Server-adatbázis több frissítése esetén a teljesítmény javítása érdekében az SQL ServerHez készült Microsoft JDBC-illesztő lehetővé teszi több frissítés egyetlen munkaegységként való elküldését, más néven kötegként.
Az SQLServerStatement, az SQLServerPreparedStatement és az SQLServerCallableStatement osztály mind felhasználható kötegelt frissítések küldéséhez. Az addBatch metódussal adhat hozzá parancsot. A clearBatch metódus a parancsok listájának törlésére szolgál. Az executeBatch metódus az összes parancs feldolgozására szolgál. Csak azok a Data Definition Language (DDL) és Data Manipulation Language (DML) utasítások futtathatók kötegként, amelyek egyszerű frissítésszámot adnak vissza.
Az executeBatch metódus az egyes parancsok frissítési számának megfelelő int értékek tömbét adja vissza. Ha az egyik parancs sikertelen, a Rendszer egy BatchUpdateException parancsot ad vissza, és a BatchUpdateException osztály getUpdateCounts metódusát kell használnia a frissítésszám tömb lekéréséhez. Ha egy parancs meghiúsul, az illesztőprogram folytatja a fennmaradó parancsok feldolgozását. Ha azonban egy parancs szintaxishibával rendelkezik, a sorozatban lévő utasítások sikertelenül futnak.
Megjegyzés:
Ha nem szükséges a frissítésszámokat használni, először adhat ki egy SET NOCOUNT ON utasítást az SQL Server számára. Ez csökkenti a hálózati forgalmat, és növeli az alkalmazás teljesítményét.
Példaként hozza létre a következő táblázatot az AdventureWorks2025 mintaadatbázisban:
CREATE TABLE TestTable
(Col1 int IDENTITY,
Col2 varchar(50),
Col3 int);
Az alábbi példában az AdventureWorks2025 mintaadatbázishoz való nyitott kapcsolatot a rendszer átadja a függvénynek, az addBatch metódussal hozza létre a végrehajtandó utasításokat, a rendszer pedig az executeBatch metódust hívja meg a köteg adatbázisba való elküldéséhez.
public static void executeBatchUpdate(Connection con) {
try {
Statement stmt = con.createStatement();
stmt.addBatch("INSERT INTO TestTable (Col2, Col3) VALUES ('X', 100)");
stmt.addBatch("INSERT INTO TestTable (Col2, Col3) VALUES ('Y', 200)");
stmt.addBatch("INSERT INTO TestTable (Col2, Col3) VALUES ('Z', 300)");
int[] updateCounts = stmt.executeBatch();
stmt.close();
}
catch (Exception e) {
e.printStackTrace();
}
}