首先瞭解Statement和PreparedStatement的區別: 由此可見,一般使用PreparedStatement。 操作資料庫SU(Course表),其中Course屬性有Cno,Cname,Cpno,Ccredit。 運行程式,控制台輸出符合條件的數據。 最後總結如下: * Prepa ...
首先瞭解Statement和PreparedStatement的區別:
由此可見,一般使用PreparedStatement。
操作資料庫SU(Course表),其中Course屬性有Cno,Cname,Cpno,Ccredit。
1 public class Demo_2 { 2 3 public static void main(String[] args) { 4 5 PreparedStatement ps=null; 6 ResultSet rs=null; 7 Connection ct=null; 8 9 try { 10 //1.載入驅動 11 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 12 //2.得到連接 13 ct=DriverManager.getConnection("jdbc:odbc:mytest"); 14 //3.創建PreparedStatement 15 ps=ct.prepareStatement("select * from Course where Cno=? and Cpno=?"); 16 17 ps.setString(1,"3"); //給第一個問號賦值 18 ps.setInt(2,1); 19 rs=ps.executeQuery(); 20 21 while(rs.next()){ 22 String Cno=rs.getString(1); 23 String Cname=rs.getString(2); 24 int Cpno=rs.getInt(3); 25 int Ccredit=rs.getInt(4); 26 System.out.println(Cno+" "+Cname+" "+Cpno+" "+Ccredit); 27 } 28 29 //使用 PreparedStatement添加一條記錄 30 // ps=ct.prepareStatement("insert into Course values(?,?,?,?)"); 31 // ps.setString(1, "8"); 32 // ps.setString(2, "C++"); 33 // ps.setInt(3, 3); 34 // ps.setInt(4, 2); 35 // //執行 36 // int i=ps.executeUpdate(); 37 // if(i==1){ 38 // System.out.print("添加成功"); 39 // }else{ 40 // System.out.print("添加不成功"); 41 // } 42 43 } catch (Exception e) { 44 e.printStackTrace(); 45 }finally{ 46 try { 47 if(rs!=null){ 48 rs.close(); 49 } 50 if(ps!=null){ 51 ps.close(); 52 } 53 if(ct!=null){ 54 ct.close(); 55 } 56 } catch (Exception e) { 57 e.printStackTrace(); 58 } 59 } 60 } 61 }
運行程式,控制台輸出符合條件的數據。
最後總結如下:
* PreparedStatement 使用crud
* 1. PreparedStatement可以提高執行的效率(因為它有預編譯的功能)
* 2. PreparedStatement可以防止sql註入,但是要求?賦值的方式才可以。