`
robinsoncrusoe
  • 浏览: 747074 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

Java数据库连结技术JDBC

    博客分类:
  • JAVA
阅读更多
  2.2.2 执行查询语句
    在JDBC中,查询可以使用不同的类来完成:Statement,PreparedStatement,或CallableStatement对象。当然,它们之间存在着一些不同之处。我们给出的例子中使用的是Statement类,其他两种我们将在后面做介绍。
    1. Statement类
    Statement 对象用于把 SQL 语句发送到 DBMS 。你只须简单地创建一个 Statement 对象并且执行它,使用适当的方法执行你发送的 SQL 语句。对 SELECT 语句来说,可以使用 executeQuery。要创建或修改表的语句,使用的方法是 executeUpdate。
    Statement类主要用于一般SQL查询语句。其编程步骤如下:
   (1)创建Statement 对象
    Connection类的createStatement 方法用于建立一个Statement 对象。
         Statement stmt = con.createStatement();
   (2)执行查询语句
    Statement类使用executeQuery方法来执行一查询语句。executeQuery的参数是用字符串类型表达的SELECT语句。它的返回值是一个ResultSet类的对象。例如:
         String query = "SELECT * FROM books";
         ResultSet r = stmt.executeQuery (query);
    该语句将返回表books中的所有的记录。
    又如:
         ResultSet rs=stmt.executeQuery(“SELECT name, author FROM books  WHERE price<20”);
    返回表book中定价小于20元的书的name和author。
    (3)获取和设置选项
    对于Statement对象也可以设置许多选项,下面给出其中的两个。
      1)SetMaxRows:设置容纳的最多记录数的选项,超过记录数的结果将被丢弃且不通知用户。它的参数是一个整型值。getMaxRows方法返回目前结果集能容纳的最多记录数。
      2)GetQueryTimeOut:设置一个语句的执行等待时间,它的参数是以秒为单位的整型值。若驱动程序等待一个语句执行的时间超过了此值,则产生一个SQLExeption。getQueryTimeOut返回目前这个选项的值。
    (4)关闭Statement
    一个无用的Statement对象在垃圾回收时将会被自动关闭,但最好在使用完Statement对象后立即关闭。在关闭Statement对象时,如果其上还有结果集,该结果集也将被关闭。
        stmt.close()。
    2. PreparedStatement
    Statement对象在每次执行SQL语句时,都要将该语句转给数据库,在多次执行同一语句时,这样做的效率较低。使用PreparedStatement类可以提高效率。
    如果数据库支持预编译,它可以将SQL语句传给数据库做预编译,以后每次执行这个SQL语句时,速度就可以提高很多;如果数据库不支持预编译,则在语句执行时,才将其传给数据库。不过,数据库支不支持预编译对用户来说是透明的。
PreparedStatement对象的SQL语句还可以接受参数。在语句中指出需要接受哪些参数,然后进行预编译。在每一次执行时,可以给SQL语句传输不同的参数,这样就大大提高了程序的灵活性。
    PreparedStatement类是Statement类派生出来的子类,因此,Statement类中的方法,它都可以使用。
   (1)创建PreparedStatement对象
    从一个Connection对象可以创建一个PreparedStatement对象。在创建时,应该给出要预编译的SQL语句。例如:
       PreparedStatement stmt=con. prepareStatement(“SELECT * FROM books”);
    对于接受参数的SQL语句,将在以后章节中讲述。
   (2)执行查询语句
    PreparedStatement对象也使用executeQuery方法来执行语句。需要注意,与Statement类不同的是该方法没有参数。这是由于创建PreparedStatement对象时,已经给出了要执行的SQL语句,并进行了预编译。执行时,只需要执行已编译好的语句就可以了。
       ResultSet rs=pstmt.executeQuery();
    上述语句可以被执行多次,无须重新给出SQL语句。同Statement类一样它返回一个ResultSet对象。对ResultSet的处理将在下一节中讲述。
    PreparedStatement类也有一个不带参数的execute方法,用于可能返回多个ResultSet语句的执行。
   (3)获取和设置选项
    PreparedStatement类是使用它的父类Statement类的相应方法来获取和设置选项的,详见Statement类中关于“获取和设置选项”的叙述。
   (4)关闭对象
    PreparedStatement对象也是使用close()方法来关闭,实际上,它是使用父类Statement的close()方法。
    3.CallableStatement
    CallableStatement对象用于执行数据库中的存储过程。存储过程是数据库中已经存在的SQL查询语句。执行该存储过程的结果同执行相应的SQL语句是一样的。存储过程可以有输入参数,也可以有输出参数。
   (1)创建CallableStatement对象
    Connection类的PreparedCall方法可以创建一个CallableStatement对象。它的参数是一个String对象,一般格式为“{Call ProcedureName ()}”,其中ProcedureName是存储过程的名称。
   (2)执行存储过程
    CallableStatement类使用父类PreparedStatement类的executeQuery方法或execute 方法来执行存储过程的。例如:
         ResultSet rs=cstmt.executeQuery();
    对结果的处理方法也同PreparedStatement一样,将在下一节中讲述。
   (3)获取和设置选项
    CallableStatement 类是使用Statement类的相应方法来获取和设置选项的,详见Statement类中关于“获取和设置选项”的叙述。
   (4)关闭CallableStatement
    CallableStatement对象也是使用close()方法来关闭的,实际上,它使用的是父类Statement 的close()方法。 
分享到:
评论

相关推荐

    使用数据连结池jdbc连结

    JDBC(Java Database Connectivity)是Java中用来与数据库交互的标准API。在这里,我们讨论如何使用数据连接池通过JDBC进行数据库操作。 首先,让我们解析给定的描述:“使用数据连结池jdbc连结private static ...

    Jsp数据库连结servlet

    在Web应用程序开发中,数据库连接是必不可少的部分,尤其是对于使用Java技术栈的开发者,如JSP和Servlet。本文将详细讲解如何使用JSP和Servlet进行数据库连接,以帮助初学者理解并实践这一基础技能。 首先,JSP...

    JSP连结数据库大全.rar

    在Java服务器页面(JSP)中,与数据库进行交互是常见的需求,这通常通过Java数据库连接(JDBC)实现。JDBC是Java平台的一部分,为开发者提供了一种标准的方式来访问各种关系型数据库。本资料"JSP连结数据库大全.rar...

    JSP连结数据库大全

    2. **JDBC驱动类型**:JDBC驱动有四种类型,分别是Type 1(纯Java驱动,适用于ODBC桥接)、Type 2(部分Java部分本地代码)、Type 3(完全基于网络的驱动)和Type 4(纯Java的高级网络驱动,直接与数据库通信)。...

    jsp连结数据库大全

    综上所述,"JSP连结数据库大全"涵盖了JSP应用中与数据库交互的各个方面,从基本的JDBC使用到高级的架构设计,都需要开发者具备扎实的理论基础和实践经验。通过学习和实践,开发者能够构建出高效、稳定的Java Web应用...

    jsp连结数据库大全.rar

    【标题】"jsp连结数据库大全.rar"是一个包含多种数据库连接方法的资源包,主要针对使用Java Server Pages(JSP)技术的开发者。这个压缩包提供了全面的示例和指南,帮助开发者学习如何在JSP应用程序中连接和操作各种...

    Jsp连结数据库大全(各数据库都有)

    JDBC(Java Database Connectivity)是Java平台的标准接口,用于连接Java程序和各种数据库。通过JDBC,JSP可以执行SQL语句、处理结果集等。首先需要在JSP页面中引入JDBC驱动,这通常在`&lt;jsp:useBean&gt;`或`...

    Jsp连结数据库大全.doc

    在运行这段代码前,确保已将Oracle JDBC驱动添加到服务器的类路径,并在数据库中创建一个名为`test`的表,包含`test1`和`test2`两个字段。 接下来,我们看看如何连接SQL Server。类似地,我们需要加载SQL Server的...

    Jsp连结数据库大全

    在本文中,我们将深入探讨如何在JavaServer Pages (JSP) 中连接到不同的数据库系统,包括Oracle、SQL Server和DB2。这些示例代码对于初学者来说是非常实用的学习资源,但需要注意,直接在JSP中处理数据库逻辑并不...

    oracle 连结包

    【标题】"Oracle 连接包"涉及到的是Oracle数据库与应用程序之间的连接机制,这通常指的是JDBC(Java Database Connectivity)驱动程序。Oracle JDBC驱动程序允许Java应用程序通过网络连接到Oracle数据库,执行SQL...

    【Mycat1.6之操作SQLServer案例】

    此外,Mycat还支持JMX(Java Management Extensions)监控,可以集成到监控系统中,实现更全面的运维管理。 总的来说,Mycat 1.6与SQLServer的结合,为我们提供了在大规模分布式环境中处理SQLServer数据库的能力。...

    老罗android开发视频教程全集百度网盘下载

    两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。 Android基础阶段:平台架构特性(JAVA/C) Market/应用程序组件 环境搭建与部署/打包与发布 AVD/DDMS/AAPT 调试与测试 相关资源访问/资源...

    报表iReport使用教程

    2. 如果使用MySQL之外的数据库,需要确保相应的JDBC驱动位于`iReport-0.5.1/lib`目录下或者系统环境变量中。 3. 设置连接名称,类似于JNDI名称。 4. 完成配置后,点击测试按钮检查连接是否成功。 ##### 3.3 新建一...

Global site tag (gtag.js) - Google Analytics