logo

PreparedStatement-grensesnitt

PreparedStatement-grensesnittet er et undergrensesnitt av Statement. Den brukes til å utføre parameterisert spørring.

La oss se eksemplet på parameterisert spørring:

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

Som du kan se, sender vi parameter (?) for verdiene. Verdien vil bli satt ved å kalle setter-metodene til PreparedStatement.

Hvorfor bruke PreparedStatement?

Forbedrer ytelsen : Ytelsen til applikasjonen vil være raskere hvis du bruker PreparedStatement-grensesnittet fordi spørringen kun kompileres én gang.


Hvordan får jeg forekomsten av PreparedStatement?

Metoden prepareStatement() til Connection-grensesnittet brukes til å returnere objektet til PreparedStatement. Syntaks:

 public PreparedStatement prepareStatement(String query)throws SQLException{} 

Metoder for PreparedStatement-grensesnitt

De viktige metodene for PreparedStatement-grensesnittet er gitt nedenfor:

js global variabel
MetodeBeskrivelse
public void setInt(int paramIndex, int verdi)setter heltallsverdien til den gitte parameterindeksen.
public void setString(int paramIndex, String value)setter strengverdien til den gitte parameterindeksen.
public void setFloat(int paramIndex, flyteverdi)setter flyteverdien til den gitte parameterindeksen.
public void setDouble(int paramIndex, dobbel verdi)setter den doble verdien til den gitte parameterindeksen.
public int executeUpdate()utfører spørringen. Den brukes til å opprette, slippe, sette inn, oppdatere, slette osv.
public ResultSet executeQuery()utfører utvalgsspørringen. Den returnerer en forekomst av ResultSet.

Eksempel på PreparedStatement-grensesnitt som setter inn posten

Lag først en tabell som gitt nedenfor:

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

Sett nå inn poster i denne tabellen med koden gitt nedenfor:

 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);} } } 
last ned dette eksemplet

Eksempel på PreparedStatement-grensesnitt som oppdaterer posten

 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'); 
last ned dette eksemplet

Eksempel på PreparedStatement-grensesnitt som sletter posten

 PreparedStatement stmt=con.prepareStatement('delete from emp where id=?'); stmt.setInt(1,101); int i=stmt.executeUpdate(); System.out.println(i+' records deleted'); 
last ned dette eksemplet

Eksempel på PreparedStatement-grensesnitt som henter postene til en tabell

 PreparedStatement stmt=con.prepareStatement('select * from emp'); ResultSet rs=stmt.executeQuery(); while(rs.next()){ System.out.println(rs.getInt(1)+' '+rs.getString(2)); } 
last ned dette eksemplet

Eksempel på PreparedStatement for å sette inn poster til brukeren trykker 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(); }}