apa bedanya statement dan prepare-statement dalam jdbc?
#statement merupakan objek untuk manipulasi data di jdbc, namun tidak mendukung parameter, pembuatan parameter secara manual di statement bisa menyebabkan sql injection, statement disarankan hanya untuk perintah sql tanpa parameter.
#prepareStatement merupakan objek untuk manipulasi data di jdbc yang mendukung parameter, prepare-statement menjamin parameter yang dimasukkan tidak akan dapat menyebabkan sql injection
#contoh SQL INJECTION :
String username = …
String password = …
String sql = “select * from table_user where username = ‘” + username + “‘ and password = ‘” + password + “‘”;
jika
username = “admin”, dan
password = “admin or ‘A’ = ‘A”
maka hasilnya :
sql = “select * from table_user where username = ‘admin’ and password = ‘admin’ or ‘A’ = ‘A'”
dengan begitu orang bisa login, tanpa harus memasukkan username dan password yang benar.
BAHAYA BUKAN?