logo

PreparedStatement-grænseflade

PreparedStatement-grænsefladen er en undergrænseflade til Statement. Det bruges til at udføre parameteriseret forespørgsel.

Lad os se eksemplet på parameteriseret forespørgsel:

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

Som du kan se, sender vi parameter (?) for værdierne. Dens værdi vil blive indstillet ved at kalde setter-metoderne i PreparedStatement.

Hvorfor bruge PreparedStatement?

Forbedrer ydeevnen : Applikationens ydeevne vil være hurtigere, hvis du bruger PreparedStatement-grænsefladen, fordi forespørgslen kun kompileres én gang.


Hvordan får man forekomsten af ​​PreparedStatement?

Metoden prepareStatement() i forbindelsesgrænsefladen bruges til at returnere objektet i PreparedStatement. Syntaks:

 public PreparedStatement prepareStatement(String query)throws SQLException{} 

Metoder til PreparedStatement-grænseflade

De vigtige metoder til PreparedStatement-grænsefladen er angivet nedenfor:

js global variabel
MetodeBeskrivelse
public void setInt(int paramIndex, int værdi)indstiller heltalsværdien til det givne parameterindeks.
public void setString(int paramIndex, String value)indstiller strengværdien til det givne parameterindeks.
public void setFloat(int paramIndex, float-værdi)indstiller flydende værdi til det givne parameterindeks.
public void setDouble(int paramIndex, dobbelt værdi)indstiller den dobbelte værdi til det givne parameterindeks.
public int executeUpdate()udfører forespørgslen. Det bruges til at oprette, slippe, indsætte, opdatere, slette osv.
public ResultSet executeQuery()udfører valgforespørgslen. Det returnerer en forekomst af ResultSet.

Eksempel på PreparedStatement-grænseflade, der indsætter posten

Først og fremmest opret tabel som vist nedenfor:

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

Indsæt nu poster i denne tabel ved hjælp af koden 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);} } } 
download dette eksempel

Eksempel på PreparedStatement-grænseflade, der opdaterer 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'); 
download dette eksempel

Eksempel på PreparedStatement-grænseflade, der 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'); 
download dette eksempel

Eksempel på PreparedStatement-grænseflade, der henter posterne i en tabel

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

Eksempel på PreparedStatement for at indsætte poster, indtil brugeren trykker på 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(); }}