logo

ממשק PreparedStatement

ממשק PreparedStatement הוא ממשק משנה של Statement. הוא משמש לביצוע שאילתה עם פרמטרים.

בוא נראה את הדוגמה של שאילתה עם פרמטרים:

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

כפי שאתה יכול לראות, אנו מעבירים פרמטר (?) עבור הערכים. הערך שלו יוגדר על ידי קריאה לשיטות ההגדרה של PreparedStatement.

למה להשתמש ב-PreparedStatement?

משפר ביצועים : הביצועים של היישום יהיו מהירים יותר אם אתה משתמש בממשק PreparedStatement מכיוון שהשאילתה מורכבת פעם אחת בלבד.


כיצד להשיג את המופע של PreparedStatement?

שיטת prepareStatement() של ממשק Connection משמשת להחזרת האובייקט של PreparedStatement. תחביר:

 public PreparedStatement prepareStatement(String query)throws SQLException{} 

שיטות ממשק PreparedStatement

השיטות החשובות של ממשק PreparedStatement ניתנות להלן:

שיטהתיאור
public void setInt(int paramIndex, int value)מגדיר את הערך השלם לאינדקס הפרמטר הנתון.
public void setString(int paramIndex, String value)מגדיר את ערך המחרוזת לאינדקס הפרמטר הנתון.
public void setFloat(int paramIndex, float value)מגדיר את הערך הצף לאינדקס הפרמטר הנתון.
public void setDouble(int paramIndex, כפול ערך)מגדיר את הערך הכפול לאינדקס הפרמטר הנתון.
public int executeUpdate()מבצע את השאילתה. הוא משמש ליצירה, שחרור, הוספה, עדכון, מחיקה וכו'.
public ResultSet executeQuery()מבצע את שאילתת הבחירה. זה מחזיר מופע של ResultSet.

דוגמה לממשק PreparedStatement שמכניס את הרשומה

קודם כל צור טבלה כמפורט להלן:

 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);} } } 
הורד את הדוגמה הזו

דוגמה לממשק PreparedStatement שמעדכן את הרשומה

 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'); 
הורד את הדוגמה הזו

דוגמה לממשק PreparedStatement שמוחק את הרשומה

 PreparedStatement stmt=con.prepareStatement('delete from emp where id=?'); stmt.setInt(1,101); int i=stmt.executeUpdate(); System.out.println(i+' records deleted'); 
הורד את הדוגמה הזו

דוגמה לממשק PreparedStatement המאחזר את הרשומות של טבלה

 PreparedStatement stmt=con.prepareStatement('select * from emp'); ResultSet rs=stmt.executeQuery(); while(rs.next()){ System.out.println(rs.getInt(1)+' '+rs.getString(2)); } 
הורד את הדוגמה הזו

דוגמה של PreparedStatement להוספת רשומות עד שהמשתמש ילחץ על 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(); }}