Junior — Middle
Mi a különbség az egyszerű Statement és a prepared PreparedStatement használata között SQL lekérdezések végrehajtásához JDBC-ben?
sobes.tech MI
Válasz az MI-től
A JDBC-ben a Statement és PreparedStatement közötti fő különbségek:
- Statement egyszerű SQL lekérdezésekhez használatos paraméterek nélkül. A lekérdezés egy stringként van megformázva, és végrehajtásra küldve.
- PreparedStatement lehetővé teszi paraméterezett lekérdezések létrehozását, ahol helykitöltőket (
?) lehet biztonságosan kitölteni értékekkel.
A PreparedStatement előnyei:
- Biztonság: megakadályozza az SQL injekciókat a paraméterek helyes escape-elésével.
- Teljesítmény: a lekérdezést egyszer fordítja le, majd többször is végrehajtható különböző paraméterekkel.
- Kényelem: megkönnyíti a dinamikus adatokkal való munkát.
Példa a PreparedStatement használatára:
String sql = "SELECT * FROM users WHERE id = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setInt(1, 10);
ResultSet rs = ps.executeQuery();
Míg a Statement string összefűzést igényel, ami nem biztonságos és kevésbé hatékony.