logo

واجهة البيان المعد

تعد واجهة PreviewdStatement واجهة فرعية للبيان. يتم استخدامه لتنفيذ استعلام ذو معلمات.

دعونا نرى مثال الاستعلام ذو المعلمات:

 String sql='insert into emp values(?,?,?)'; 

كما ترون، نقوم بتمرير المعلمة (؟) للقيم. سيتم تعيين قيمتها عن طريق استدعاء أساليب الضبط الخاصة بـ PreparationStatement.

لماذا نستخدم PreparedStatement؟

يحسن الأداء : سيكون أداء التطبيق أسرع إذا كنت تستخدم واجهة PreviewdStatement لأنه يتم تجميع الاستعلام مرة واحدة فقط.


كيفية الحصول على مثيل PreparedStatement؟

يتم استخدام طريقة PreparStatement () لواجهة الاتصال لإرجاع كائن PreparationStatement. بناء الجملة:

 public PreparedStatement prepareStatement(String query)throws SQLException{} 

طرق واجهة ReadyStatement

فيما يلي الطرق المهمة لواجهة ReadyStatement:

طريقةوصف
مجموعة الفراغ العام (int paramIndex، قيمة int)يضبط قيمة العدد الصحيح على فهرس المعلمة المحدد.
مجموعة الفراغ العام (int paramIndex، قيمة السلسلة)يضبط قيمة السلسلة على فهرس المعلمة المحدد.
مجموعة الفراغ العام (int paramIndex، قيمة التعويم)يضبط القيمة العائمة على فهرس المعلمة المحدد.
مجموعة الفراغ العام مزدوج (int paramIndex، قيمة مزدوجة)يضبط القيمة المزدوجة على فهرس المعلمة المحدد.
تنفيذ التحديث العام ()ينفذ الاستعلام. يتم استخدامه للإنشاء والإفلات والإدراج والتحديث والحذف وما إلى ذلك.
مجموعة النتائج العامة ExecuterQuery()ينفذ استعلام التحديد. تقوم بإرجاع مثيل ResultSet.

مثال على واجهة ReadyStatement التي تقوم بإدراج السجل

أولا قم بإنشاء جدول كما هو موضح أدناه:

 create table emp(id number(10),name varchar2(50)); 

الآن قم بإدراج السجلات في هذا الجدول حسب الكود الموضح أدناه:

 import java.sql.*; class InsertPrepared{ public static void main(String args[]){ try{ Class.forName('oracle.jdbc.driver.OracleDriver'); Connection con=DriverManager.getConnection('jdbc:oracle:thin:@localhost:1521:xe','system','oracle'); PreparedStatement stmt=con.prepareStatement('insert into Emp values(?,?)'); stmt.setInt(1,101);//1 specifies the first parameter in the query stmt.setString(2,'Ratan'); int i=stmt.executeUpdate(); System.out.println(i+' records inserted'); con.close(); }catch(Exception e){ System.out.println(e);} } } 
قم بتنزيل هذا المثال

مثال على واجهة PreparationStatement التي تقوم بتحديث السجل

 PreparedStatement stmt=con.prepareStatement('update emp set name=? where id=?'); stmt.setString(1,'Sonoo');//1 specifies the first parameter in the query i.e. name stmt.setInt(2,101); int i=stmt.executeUpdate(); System.out.println(i+' records updated'); 
قم بتنزيل هذا المثال

مثال على واجهة PreparationStatement التي تحذف السجل

 PreparedStatement stmt=con.prepareStatement('delete from emp where id=?'); stmt.setInt(1,101); int i=stmt.executeUpdate(); System.out.println(i+' records deleted'); 
قم بتنزيل هذا المثال

مثال على واجهة PreparationStatement التي تسترد سجلات الجدول

 PreparedStatement stmt=con.prepareStatement('select * from emp'); ResultSet rs=stmt.executeQuery(); while(rs.next()){ System.out.println(rs.getInt(1)+' '+rs.getString(2)); } 
قم بتنزيل هذا المثال

مثال على ReadyStatement لإدراج السجلات حتى يضغط المستخدم على n

 import java.sql.*; import java.io.*; class RS{ public static void main(String args[])throws Exception{ Class.forName('oracle.jdbc.driver.OracleDriver'); Connection con=DriverManager.getConnection('jdbc:oracle:thin:@localhost:1521:xe','system','oracle'); PreparedStatement ps=con.prepareStatement('insert into emp130 values(?,?,?)'); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); do{ System.out.println('enter id:'); int id=Integer.parseInt(br.readLine()); System.out.println('enter name:'); String name=br.readLine(); System.out.println('enter salary:'); float salary=Float.parseFloat(br.readLine()); ps.setInt(1,id); ps.setString(2,name); ps.setFloat(3,salary); int i=ps.executeUpdate(); System.out.println(i+' records affected'); System.out.println('Do you want to continue: y/n'); String s=br.readLine(); if(s.startsWith('n')){ break; } }while(true); con.close(); }}