Sobes.tech
Junior — Middle

Ի՞նչ տարբերություն կա 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-ը՝ տվյալների բազքի պրոցեդուրաները կանչելու համար։