JDBC中PreparedStatement简介

 

PreparedStatement接口继承自Statement接口,PreparedStatement比普通的Statement对象使用起来更加灵活,更有效率.

PreparedStatement实例包含已编译的SQL语句,SQL语句可具有一个或多个输入参数。这些输入参数的值在SQL语句创建时

未被指定,而是为每个输入参数保留一个问号,作为占位符。

实例:

PreparedStatement ps = conn.preparedStatement("Insert into demo (name,score) values(?,?)");

在执行PreparedStatement对象之前,必须设置每个输入参数的值。可功过setXXX方法来完成,其中XXX是与该参数相应的类型

如果该参数是Int类型,则使用的方法是setInt().sexXXX方法的第一个参数是该参数所占位的序号,第二个参数是设置给参数的值。

ps.setString("Hamber");

ps.setInt(100);

由于PreparedStatement已经编译,所以执行起来要比Statement速度要快.

 

以下示例利用PreparedStatement执行查询操作

Code:
  1. import java.sql.*;   
  2.   
  3. public class Test   
  4. {   
  5.              public static void main(String ar [])   
  6.            {   
  7.                     
  8.                           Connection conn = null;   
  9.                           PreparedStatement ps = null;   
  10.   
  11.                          try  
  12.                         {   
  13.                                  String sql = "Select * from cong1";   
  14.   
  15.                                   try  
  16.                                   {   
  17.                                         Class.forName("com.microsoft.sqlserver.jdbc.SqlServerDriver");   
  18.                                   }   
  19.                                  catch(ClassNotFoundException ex)   
  20.                                 {   
  21.                                          ex.printStackTrace();   
  22.                                 }   
  23.   
  24.                                  conn = DriverManager.getConnection("jdbc:sqlserver://localhost1433;DataBaseName = hamber","sa","123456");   
  25.                                  ps = conn.PreparedStatement(sql);   
  26.                                  ReulstSet rs = ps.executeQuery();   
  27.                                  while(rs.next())   
  28.                                 {   
  29.                                   int a = rs.getInt("score");   
  30.                                   String b = rsgetString("name");   
  31.                                 }   
  32.                         }   
  33.                         catch(SQLException ex)   
  34.                        {   
  35.                                ex.printStackTrace();   
  36.                        }   
  37.                       finally  
  38.                       {   
  39.                                  try  
  40.                                 {   
  41.                                       ps.close();   
  42.                                       conn.close();   
  43.                                 }   
  44.                                   catch(SQLException ex)   
  45.                                {   
  46.                                    ex.printStackTrace();   
  47.                                }   
  48.                       }   
  49.           }   
  50. }  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值