logo

PreparedStatement-Schnittstelle

Die PreparedStatement-Schnittstelle ist eine Unterschnittstelle von Statement. Es wird verwendet, um parametrisierte Abfragen auszuführen.

Java-Sammlungen Java

Sehen wir uns das Beispiel einer parametrisierten Abfrage an:

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

Wie Sie sehen, übergeben wir Parameter (?) für die Werte. Sein Wert wird durch Aufrufen der Setter-Methoden von PreparedStatement festgelegt.

Warum PreparedStatement verwenden?

Verbessert die Leistung : Die Leistung der Anwendung wird schneller sein, wenn Sie die PreparedStatement-Schnittstelle verwenden, da die Abfrage nur einmal kompiliert wird.


Wie erhalte ich die Instanz von PreparedStatement?

Die Methode PrepareStatement() der Connection-Schnittstelle wird verwendet, um das Objekt von PreparedStatement zurückzugeben. Syntax:

 public PreparedStatement prepareStatement(String query)throws SQLException{} 

Methoden der PreparedStatement-Schnittstelle

Die wichtigen Methoden der PreparedStatement-Schnittstelle sind unten aufgeführt:

MethodeBeschreibung
public void setInt(int paramIndex, int value)Setzt den ganzzahligen Wert auf den angegebenen Parameterindex.
public void setString(int paramIndex, String value)Setzt den String-Wert auf den angegebenen Parameterindex.
public void setFloat(int paramIndex, float value)Setzt den Float-Wert auf den angegebenen Parameterindex.
public void setDouble(int paramIndex, double value)setzt den Double-Wert auf den angegebenen Parameterindex.
public intexecuteUpdate()führt die Abfrage aus. Es wird zum Erstellen, Löschen, Einfügen, Aktualisieren, Löschen usw. verwendet.
öffentliches ResultSetexecuteQuery()führt die Auswahlabfrage aus. Es gibt eine Instanz von ResultSet zurück.

Beispiel einer PreparedStatement-Schnittstelle, die den Datensatz einfügt

Erstellen Sie zunächst eine Tabelle wie unten angegeben:

Sortieren einer Arrayliste Java
 create table emp(id number(10),name varchar2(50)); 

Fügen Sie nun mit dem unten angegebenen Code Datensätze in diese Tabelle ein:

 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);} } } 
Laden Sie dieses Beispiel herunter

Beispiel einer PreparedStatement-Schnittstelle, die den Datensatz aktualisiert

 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'); 
Laden Sie dieses Beispiel herunter

Beispiel einer PreparedStatement-Schnittstelle, die den Datensatz löscht

 PreparedStatement stmt=con.prepareStatement('delete from emp where id=?'); stmt.setInt(1,101); int i=stmt.executeUpdate(); System.out.println(i+' records deleted'); 
Laden Sie dieses Beispiel herunter

Beispiel einer PreparedStatement-Schnittstelle, die die Datensätze einer Tabelle abruft

 PreparedStatement stmt=con.prepareStatement('select * from emp'); ResultSet rs=stmt.executeQuery(); while(rs.next()){ System.out.println(rs.getInt(1)+' '+rs.getString(2)); } 
Laden Sie dieses Beispiel herunter

Beispiel für PreparedStatement zum Einfügen von Datensätzen, bis der Benutzer n drückt

 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(); }}