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