Sobes.tech
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.