Junior
Java'da Statement ve PreparedStatement arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Statement ve PreparedStatement JDBC arayüzleridir ve SQL sorgularını çalıştırmak için kullanılırlar, ancak çalışma şekilleri ve kullanımları bakımından farklılık gösterirler.
- Statement parametresiz basit SQL sorgularını çalıştırmak için kullanılır. Sorgular dizgi olarak iletilir, her seferinde derlenir ve çalıştırılır.
- PreparedStatement ise yer tutucular (
?gibi) içeren parametreli sorgular oluşturmayı sağlar, bu sorgular bir kez derlenir ve farklı parametrelerle tekrar tekrar çalıştırılabilir.
PreparedStatement avantajları:
- Güvenlik: SQL enjeksiyonlarını önler, çünkü parametreler ayrı iletilir ve sorgunun yapısını etkilemez.
- Performans: Sorgu bir kez derlenir, bu da tekrar eden çalıştırmaları hızlandırır.
PreparedStatement kullanımına örnek:
String sql = "SELECT * FROM users WHERE email = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, "user@example.com");
ResultSet rs = ps.executeQuery();
Statement kullanımı:
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users WHERE email = 'user@example.com'");
Dinamİk sorgular ve parametreler ile güvenlik ve performansı artırmak için PreparedStatement kullanımı önerilir.