zoukankan      html  css  js  c++  java
  • Statemnet和PerparedStstemnent有哪些区别

    Statement 和 PreparedStatement之间的关系和区别.
        关系:PreparedStatement继承自Statement,都是接口
        区别:PreparedStatement可以使用占位符,是预编译的,批处理比Statement效率高   
    详解:
    1、PreparedStatement:表示预编译的 SQL 语句的对象。
       接口:public interface PreparedStatement extends Statement之间的继承关系
       SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。
       注:用于设置 IN 参数值的设置方法(setShort、setString 等等)必须指定与输入参数的已定义 SQL 类型兼容的类型。例如,如果 IN 参数具有 SQL 类型 INTEGER,那么应该使用 setInt 方法,问号的位置也是应该注意的,因为第一个问好的位置为1,第二个问号的位置为2.以此类推。
       如果需要任意参数类型转换,使用 setObject 方法时应该将目标 SQL 类型作为其参数。
       在以下设置参数的示例中,con 表示一个活动连接:
                  PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES SALARY = ? WHERE ID = ?");
                  pstmt.setBigDecimal(1, 1533.00)
                  pstmt.setInt(2, 1102)
                  pstmt.execute()//注意提交时这里不能再有sql语句,不同于Statment

    2、Statement:用于执行静态 SQL 语句并返回它所生成结果的对象。
       接口:public interface Statement extends Wrapper
    在默认情况下,同一时间每个 Statement 对象只能打开一个 ResultSet 对象。因此,如果读取一个 ResultSet 对象与另一个交叉,则这两个对象必须是由不同的 Statement 对象生成的。如果存在某个语句的打开的当前 ResultSet 对象,则 Statement 接口中的所有执行方法都会隐式关闭它。  
       如以下操作:创建statement对象
              Statement stat=conn.createStatement();
              String sql="insert into lover values(6,'suxingxing',to_date('21-9-2016','dd-mm-yyyy'))";
              stat.execute(sql);//这里提交时应该有sql语句,不同于PreparedStatment

  • 相关阅读:
    Python try/except/finally
    EmailMessage类
    HTML DOM 初学笔记
    JavaScript 初学备忘录
    html style标签
    Django 导出csv文件 中文乱码问题
    Html 列表实现展开和收起
    Django CreateView 简单使用
    Django用户认证
    Nginx负载均衡配置实例详解
  • 原文地址:https://www.cnblogs.com/TangGe520/p/8927161.html
Copyright © 2011-2022 走看看