logo

ПрепаредСтатемент интерфејс

Интерфејс ПрепаредСтатемент је подинтерфејс Изјаве. Користи се за извршавање параметризованог упита.

Погледајмо пример параметаризованог упита:

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

Као што видите, прослеђујемо параметар (?) за вредности. Његова вредност ће бити постављена позивањем метода за подешавање ПрепаредСтатемент-а.

Зашто користити ПрепаредСтатемент?

Побољшава перформансе : Перформансе апликације ће бити брже ако користите ПрепаредСтатемент интерфејс јер се упит компајлира само једном.


Како добити инстанцу ПрепаредСтатемента?

Метода реадиСтатемент() интерфејса Цоннецтион се користи за враћање објекта ПрепаредСтатемент. Синтакса:

 public PreparedStatement prepareStatement(String query)throws SQLException{} 

Методе интерфејса ПрепаредСтатемент

Важне методе интерфејса ПрепаредСтатемент су дате у наставку:

МетодОпис
публиц воид сетИнт(инт парамИндек, инт вредност)поставља целобројну вредност на дати индекс параметра.
публиц воид сетСтринг(инт парамИндек, стринг вредност)поставља вредност Стринг на дати индекс параметра.
публиц воид сетФлоат(инт парамИндек, флоат валуе)поставља флоат вредност на дати индекс параметра.
публиц воид сетДоубле(инт парамИндек, дупла вредност)поставља двоструку вредност за дати индекс параметра.
публиц инт екецутеУпдате()извршава упит. Користи се за креирање, испуштање, уметање, ажурирање, брисање итд.
јавни РесултСет екецутеКуери()извршава упит за избор. Враћа инстанцу РесултСет-а.

Пример интерфејса ПрепаредСтатемент који убацује запис

Прво направите табелу као што је дато у наставку:

 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 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 stmt=con.prepareStatement('delete from emp where id=?'); stmt.setInt(1,101); int i=stmt.executeUpdate(); System.out.println(i+' records deleted'); 
преузмите овај пример

Пример интерфејса ПрепаредСтатемент који преузима записе табеле

 PreparedStatement stmt=con.prepareStatement('select * from emp'); ResultSet rs=stmt.executeQuery(); while(rs.next()){ System.out.println(rs.getInt(1)+' '+rs.getString(2)); } 
преузмите овај пример

Пример ПрепаредСтатемента за уметање записа док корисник не притисне н

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