当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:15:00  来源:本站整理

关于Java Database Connectivity您不知道的5件事:晋升您和JDBC[Java编程]

赞助商链接



  本文“关于Java Database Connectivity您不知道的5件事:晋升您和JDBC[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

关于Java Database Connectivity您不知道的5件事:晋升您和JDBC API的关系

目前,很多开辟人员把 Java Database Connectivity (JDBC) API 当作一种数据拜候平台,比方 Hibernate 或 SpringMany.但是 JDBC 在数据库衔接中不但仅充当后台角色.关于 JDBC,您理解的越多,您的 RDBMS 交互效率就越高.

在本期 5 件事 系列 中,我将向您介绍几种 JDBC 2.0 到 JDBC 4.0 中新引入的功效.计划时考虑到现代软件开辟所面对的挑衅,这些新特点支持利用程序可伸缩性,并提高开辟人员的工作效率 — 这是现代 Java 开辟人员面对的两个最常见的挑衅.

1. 标量函数

差别的 RDBMS 实现对 SQL 和/或增值特点(目的是让程序员的工作更为简单)供应不法则的支持.比方,众所周知,SQL 支持一个标量运算 COUNT(),返回满意特定 SQL 过滤法则的行数(更切当地说,是 WHERE 谓词).除此之外,改正 SQL 返回的值是很棘手的 — 想要从数据库获得当前日期和时间会使 JDBC 开辟人员、乃至最有耐烦的程序员发狂(乃至是心力憔悴).

于是,JDBC 标准针对差别的 RDBMS 实现通过标量函数供应一定程度的断绝/改写.JDBC 标准包含一系列受支持的操作,JDBC 驱动程序应当按照特定数据库实现的需求举行辨认和改写.因此,关于一个支持返回当前日期和/或时间的数据库,时间查询该当如清单 1 那样简单:

清单 1. 当前时间?

Connection conn = ...; // get it from someplace
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("{CURRENT_DATE()}");

JDBC API 辨认的标量函数完好列表在 JDBC 标准附录中给出,但是给定的驱动程序或数据库大概不支持完好列表.您可以利用从 Connection 返回的 DatabaseMetaData 对象来获得给定 JDBC 支持的函数,如清单 2 所示:

清单 2. 能为我供应什么?

Connection conn = ...; // get it from someplace
DatabaseMetaData dbmd = conn.getMetaData();

标量函数列表是从各种 DatabaseMetaData 办法返回的一个逗号脱离的 String.比方,全部数值标量由 getNumericFunctions() 调用列出,在后果上履行一个 String.split() — 瞧! — 即刻呈现 equals()-testable 列表.

2. 可转动 ResultSets

成立一个 Connection 对象,并用它来成立一个 Statement,这在 JDBC 中是最常用的.供应应 SQL SELECT 的 Statement 返回一个 ResultSet.然后,通过一个 while 循环(和 Iterator 没什么差别)得到 ResultSet,直到 ResultSet 为空,循环体从左到右的每次提取一列.

这整个操作历程是如此广泛,近乎神圣:它这样做只是因为它应当这样做.唉!实际上这是完好没必要的.

引入可转动 ResultSet

很多开辟人员没有意识到,在过去的几年中 JBDC 已经有了相当大的加强,固然这些加强在新版本中已经有所反映. 第一次庞大加强是在 JDBC 2.0 中,发生在利用 JDK 1.2 期间.写这篇文章时,JDBC 已经发展到了 JDBC 4.0.

JDBC 2.0 中一个风趣的加强(固然常常被忽视)是 ResultSet 的转动功效,这意味着您可以按照需求行进大概撤退,大概二者都可.这样做需求一点前瞻性,但是 — JDBC 调用必须指出在成立 Statement 时需求一个可以转动的 ResultSet.


  以上是“关于Java Database Connectivity您不知道的5件事:晋升您和JDBC[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 关于JAVA匿名内部类的一点评论
  • 关于Java栈与堆的考虑
  • <b>关于Java对象序列化您不知道的5件事</b>
  • 关于Java Database Connectivity您不知道的5件事:晋升您和JDBC
  • <b>关于Java性能监控您不知道的5件事,第2部份:操作JDK内置解析器</b>
  • 关于Java Scripting API您不知道的5件事,Java平台上更简单的脚
  • 关于Java的注释
  • 关于java vm的垃圾堆积
  • 关于java承当的一点考虑
  • 你该当知道的10件关于Java 6的事情
  • <b>关于Java角色访谒掌握(RBAC)</b>
  • <b>关于Java占用内存的研究</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .