Ի՞նչ տարբերություն կա PreparedStatement և CallableStatement օգտագործելու միջև տվյալների բազայի հետ աշխատելիս։
sobes.tech AI
Պատասխան AI-ից
Java-ում տվյալների բազայի հետ աշխատելիս PreparedStatement և CallableStatement-ի հիմնական տարբերությունը.
-
PreparedStatement-ը օգտագործվում է նախապես կոմպիլյացված SQL հարցումների կատարման համար (հաճախ SELECT, INSERT, UPDATE, DELETE): այն ապահով կերպով թույլ է տալիս տեղադրել պարամետրեր՝ կանխելով SQL հարձակումները:
-
CallableStatement-ը նախատեսված է տվյալների բազքում սահմանված պահվող պրոցեդուրաները կամ ֆունկցիաները կանչելու համար: Այն աջակցում է ինչպես մուտքային, այնպես էլ ելքային պարամետրերին:
Օրինակ PreparedStatement-ի օգտագործման:
String sql = "SELECT * FROM users WHERE id = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setInt(1, 10);
ResultSet rs = ps.executeQuery();
Օրինակ CallableStatement-ի օգտագործման:
CallableStatement cs = connection.prepareCall("{call getUserById(?)}");
cs.setInt(1, 10);
ResultSet rs = cs.executeQuery();
Այսպիսով, PreparedStatement-ը օգտագործվում է սովորական պարամետրավորված հարցումների համար, իսկ CallableStatement-ը՝ տվյալների բազքի պրոցեդուրաները կանչելու համար։