• Statement,PreparedStatement和CallableStatement的联系和区别


    联系:

    CallableStatement继承自PreparedSatement,PreparedStatement继承自Statement。

    区别:

        1:Statement 每次执行sql语句,数据库都要执行sql语句的编译 ,最好用于仅执行一次查询并返回结果的情形,效率高于PreparedStatement.  

           

        2:PreparedStatement是预编译的,使用PreparedStatement有几个好处  

         a. 在执行可变参数的一条SQL时,PreparedStatement比Statement的效率高,因为DBMS预编译一条SQL当然会比多次编译一条SQL的效率要高。  

         b. 安全性好,有效防止Sql注入等问题。  

         c.  对于多次重复执行的语句,使用PreparedStament效率会更高一点,并且在这种情况下也比较适合使用batch;  

         d.  代码的可读性和可维护性。  

           

        3:CallableStatement接口扩展PreparedStatement,用来调用存储过程,它提供了对输出和输入/输出参数的支持。CallableStatement 接口还具有对 PreparedStatement 接口提供的输入参数的支持。  

     

      Statement 对象用于将 SQL 语句发送到数据库中。
        实际上有三种 Statement 对象,它们都作为在给定连接上执行  SQL语句的包容器:     
      
      
    1.       Statement、    
    2.       PreparedStatement(它从 Statement  继承而来)和    
    3.       CallableStatement(它从 PreparedStatement 继承而来)。
    它们都专用于发送特定类型的 SQL  语句:
        
    1.     Statement 对象用于执行不带参数的简单 SQL 语句;    
    2.     PreparedStatement 对象用于执行带或不带 IN参数的预编译  SQL  语句;    
    3.     CallableStatement 对象用于执行对数据库已存储过程的调用。
    •    Statement 接口提供了执行语句和获取结果的基本方法。
    •    PreparedStatement 接口添加了处理 IN 参数的方法;
    •    而CallableStatement 添加了处理 OUT 参数的方法。
  • 相关阅读:
    关于W3Cschool定义的设计模式--常用的9种设计模式的介绍
    正则得介绍和使用——表单验证
    DOM的高级操作-一种JS控制元素的视觉假象
    如何理解JS中this指向的问题
    Vulkan中的实时软阴影与硬件优化
    TensorFlow Distribution(分布式中的数据读取和训练)
    TensorFlow白皮书
    TensorFlow Data模块
    新闻标签提取的评价方法
    基于TF-IDF的新闻标签提取
  • 原文地址:https://www.cnblogs.com/Berryxiong/p/6142793.html
Copyright © 2020-2023  润新知