Provides the API for accessing and processing data stored in a data source (usually a relational database) using the Java™ programming language. This API includes a framework whereby different drivers can be installed dynamically to access different data sources. Although the JDBC™ API is mainly geared to passing SQL statements to a database, it provides for reading and writing data from any data source with a tabular format. The reader/writer facility, available through the javax.sql.RowSet group of interfaces, can be customized to use and update data from a spread sheet, flat file, or any other tabular data source.

What the JDBC™ 4.3 API Includes

The JDBC™ 4.3 API includes both the java.sql package, referred to as the JDBC core API, and the javax.sql package, referred to as the JDBC Optional Package API. This complete JDBC API is included in the Java™ Standard Edition (Java SE™), version 7. The javax.sql package extends the functionality of the JDBC API from a client-side API to a server-side API, and it is an essential part of the Java™ Enterprise Edition (Java EE™) technology.

Versions

The JDBC 4.3 API incorporates all of the previous JDBC API versions:

  • The JDBC 4.2 API
  • The JDBC 4.1 API
  • The JDBC 4.0 API
  • The JDBC 3.0 API
  • The JDBC 2.1 core API
  • The JDBC 2.0 Optional Package API
    (Note that the JDBC 2.1 core API and the JDBC 2.0 Optional Package API together are referred to as the JDBC 2.0 API.)
  • The JDBC 1.2 API
  • The JDBC 1.0 API

Classes, interfaces, methods, fields, constructors, and exceptions have the following "since" tags that indicate when they were introduced into the Java platform. When these "since" tags are used in Javadoc™ comments for the JDBC API, they indicate the following:

  • Since 9 -- new in the JDBC 4.3 API and part of the Java SE platform, version 9
  • Since 1.8 -- new in the JDBC 4.2 API and part of the Java SE platform, version 8
  • Since 1.7 -- new in the JDBC 4.1 API and part of the Java SE platform, version 7
  • Since 1.6 -- new in the JDBC 4.0 API and part of the Java SE platform, version 6
  • Since 1.4 -- new in the JDBC 3.0 API and part of the J2SE platform, version 1.4
  • Since 1.2 -- new in the JDBC 2.0 API and part of the J2SE platform, version 1.2
  • Since 1.1 or no "since" tag -- in the original JDBC 1.0 API and part of the JDK™, version 1.1

NOTE: Many of the new features are optional; consequently, there is some variation in drivers and the features they support. Always check your driver's documentation to see whether it supports a feature before you try to use it.

NOTE: The class SQLPermission was added in the Java™ 2 SDK, Standard Edition, version 1.3 release. This class is used to prevent unauthorized access to the logging stream associated with the DriverManager, which may contain information such as table names, column data, and so on.

What the java.sql Package Contains

The java.sql package contains API for the following:

  • Making a connection with a database via the DriverManager facility

    • DriverManager class -- makes a connection with a driver
    • SQLPermission class -- provides permission when code running within a Security Manager, such as an applet, attempts to set up a logging stream through the DriverManager
    • Driver interface -- provides the API for registering and connecting drivers based on JDBC technology ("JDBC drivers"); generally used only by the DriverManager class
    • DriverPropertyInfo class -- provides properties for a JDBC driver; not used by the general user
  • Sending SQL statements to a database
    • Statement -- used to send basic SQL statements
    • PreparedStatement -- used to send prepared statements or basic SQL statements (derived from Statement)
    • CallableStatement -- used to call database stored procedures (derived from PreparedStatement)
    • Connection interface -- provides methods for creating statements and managing connections and their properties
    • Savepoint -- provides savepoints in a transaction
  • Retrieving and updating the results of a query
    • ResultSet interface
  • Standard mappings for SQL types to classes and interfaces in the Java programming language
    • Array interface -- mapping for SQL ARRAY
    • Blob interface -- mapping for SQL BLOB
    • Clob interface -- mapping for SQL CLOB
    • Date class -- mapping for SQL DATE
    • NClob interface -- mapping for SQL NCLOB
    • Ref interface -- mapping for SQL REF
    • RowId interface -- mapping for SQL ROWID
    • Struct interface -- mapping for SQL STRUCT
    • SQLXML interface -- mapping for SQL XML
    • Time class -- mapping for SQL TIME
    • Timestamp class -- mapping for SQL TIMESTAMP
    • Types class -- provides constants for SQL types
  • Custom mapping an SQL user-defined type (UDT) to a class in the Java programming language
    • SQLData interface -- specifies the mapping of a UDT to an instance of this class
    • SQLInput interface -- provides methods for reading UDT attributes from a stream
    • SQLOutput interface -- provides methods for writing UDT attributes back to a stream
  • Metadata
    • DatabaseMetaData interface -- provides information about the database
    • ResultSetMetaData interface -- provides information about the columns of a ResultSet object
    • ParameterMetaData interface -- provides information about the parameters to PreparedStatement commands
  • Exceptions
    • SQLException -- thrown by most methods when there is a problem accessing data and by some methods for other reasons
    • SQLWarning -- thrown to indicate a warning
    • DataTruncation -- thrown to indicate that data may have been truncated
    • BatchUpdateException -- thrown to indicate that not all commands in a batch update executed successfully

java.sql and javax.sql Features Introduced in the JDBC 4.3 API

  • Added Sharding support
  • Enhanced Connection to be able to provide hints to the driver that a request, an independent unit of work, is beginning or ending
  • Enhanced DatabaseMetaData to determine if Sharding is supported
  • Added the method drivers to DriverManager to return a Stream of the currently loaded and available JDBC drivers
  • Added support to Statement for enquoting literals and simple identifiers
  • Clarified the Java SE version that methods were deprecated

java.sql and javax.sql Features Introduced in the JDBC 4.2 API

  • Added JDBCType enum and SQLType interface
  • Support for REF CURSORS in CallableStatement
  • DatabaseMetaData methods to return maximum Logical LOB size and if Ref Cursors are supported
  • Added support for large update counts

java.sql and javax.sql Features Introduced in the JDBC 4.1 API

  • Allow ConnectionResultSet and Statement objects to be used with the try-with-resources statement
  • Support added to CallableStatement and ResultSet to specify the Java type to convert to via the getObject method
  • DatabaseMetaData methods to return PseudoColumns and if a generated key is always returned
  • Added support to Connection to specify a database schema, abort and timeout a physical connection.
  • Added support to close a Statement object when its dependent objects have been closed
  • Support for obtaining the parent logger for a DriverDataSourceConnectionPoolDataSource and XADataSource

java.sql and javax.sql Features Introduced in the JDBC 4.0 API

  • auto java.sql.Driver discovery -- no longer need to load a java.sql.Driver class via Class.forName
  • National Character Set support added
  • Support added for the SQL:2003 XML data type
  • SQLException enhancements -- Added support for cause chaining; New SQLExceptions added for common SQLState class value codes
  • Enhanced Blob/Clob functionality -- Support provided to create and free a Blob/Clob instance as well as additional methods added to improve accessibility
  • Support added for accessing a SQL ROWID
  • Support added to allow a JDBC application to access an instance of a JDBC resource that has been wrapped by a vendor, usually in an application server or connection pooling environment.
  • Availability to be notified when a PreparedStatement that is associated with a PooledConnection has been closed or the driver determines is invalid

java.sql and javax.sql Features Introduced in the JDBC 3.0 API

  • Pooled statements -- reuse of statements associated with a pooled connection
  • Savepoints -- allow a transaction to be rolled back to a designated savepoint
  • Properties defined for ConnectionPoolDataSource -- specify how connections are to be pooled
  • Metadata for parameters of a PreparedStatement object
  • Ability to retrieve values from automatically generated columns
  • Ability to have multiple ResultSet objects returned from CallableStatement objects open at the same time
  • Ability to identify parameters to CallableStatement objects by name as well as by index
  • ResultSet holdability -- ability to specify whether cursors should be held open or closed at the end of a transaction
  • Ability to retrieve and update the SQL structured type instance that a Ref object references
  • Ability to programmatically update BLOBCLOBARRAY, and REF values.
  • Addition of the java.sql.Types.DATALINK data type -- allows JDBC drivers access to objects stored outside a data source
  • Addition of metadata for retrieving SQL type hierarchies

java.sql Features Introduced in the JDBC 2.1 Core API

  • Scrollable result sets--using new methods in the ResultSet interface that allow the cursor to be moved to a particular row or to a position relative to its current position
  • Batch updates
  • Programmatic updates--using ResultSet updater methods
  • New data types--interfaces mapping the SQL3 data types
  • Custom mapping of user-defined types (UDTs)
  • Miscellaneous features, including performance hints, the use of character streams, full precision for java.math.BigDecimal values, additional security, and support for time zones in date, time, and timestamp values.

javax.sql Features Introduced in the JDBC 2.0 Optional Package API

  • The DataSource interface as a means of making a connection. The Java Naming and Directory Interface™ (JNDI) is used for registering a DataSource object with a naming service and also for retrieving it.
  • Pooled connections -- allowing connections to be used and reused
  • Distributed transactions -- allowing a transaction to span diverse DBMS servers
  • RowSet technology -- providing a convenient means of handling and passing data

Custom Mapping of UDTs

A user-defined type (UDT) defined in SQL can be mapped to a class in the Java programming language. An SQL structured type or an SQL DISTINCT type are the UDTs that may be custom mapped. The following three steps set up a custom mapping:

  1. Defining the SQL structured type or DISTINCT type in SQL
  2. Defining the class in the Java programming language to which the SQL UDT will be mapped. This class must implement the SQLData interface.
  3. Making an entry in a Connection object's type map that contains two things:
    • the fully-qualified SQL name of the UDT
    • the Class object for the class that implements the SQLData interface

When these are in place for a UDT, calling the methods ResultSet.getObject or CallableStatement.getObject on that UDT will automatically retrieve the custom mapping for it. Also, thePreparedStatement.setObject method will automatically map the object back to its SQL type to store it in the data source.

Package Specification

  • JDBC 4.3 Specification

Related Documentation

    • Lesson:JDBC Basics(The Javaxx Tutorials > JDBC™ Database Access)
    • JDBC™ API Tutorial and Reference, Third Edition

Package java.sql的更多相关文章

  1. java.sql.preparedstatement和java.sql.statement的区别

    本文转自CSDN,然后整理了一遍.原文出处:CSDN JDBC(java database connectivity,java数据库连接)的api中的主要的四个类之一的java.sql.stateme ...

  2. Spring 整合 Flex (BlazeDS)无法从as对象 到 Java对象转换的异常:org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.util.Date' to required type 'java.sql.Timestamp' for property 'wfsj'; nested exception is java.lang.Ill

    异常信息如下: org.springframework.beans.ConversionNotSupportedException: Failed to convert property value ...

  3. 解决Apache CXF 不支持传递java.sql.Timestamp和java.util.HashMap类型问题

    在项目中使用Apache开源的Services Framework CXF来发布WebService,CXF能够很简洁与Spring Framework 集成在一起,在发布WebService的过程中 ...

  4. JAVA学习.java.sql.date 与java.util.date以及gettime()方法的分析

    java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分. java.util.Date 就是在除了SQL语句的情况下面使用. 它都有getTime方法返回毫秒数,返回的是自19 ...

  5. Java sql helper[转]

    原文:http://www.cnblogs.com/beijiguangyong/archive/2011/12/10/2302737.html package sql; import java.sq ...

  6. Error getting nested result map values for 'company'. Cause: java.sql.SQLException: Invalid value for getInt() - 'NFHK188'

    我今天遇到一个我不解的问题,是mybatis多对一关系查询出问题了,但是我自己还是解决了,在网上也查过那个错误,可是找不到我想要的.不知道你们遇到过没有,我接下来分享给大家.希望我这个第一篇博客能帮助 ...

  7. java.sql.SQLException: Can not issue empty query.

    1.错误描述 java.sql.SQLException: Can not issue empty query. at com.mysql.jdbc.SQLError.createSQLExcepti ...

  8. Hibernate报错:Caused by: java.sql.SQLException: Field 'ID' doesn't have a default value

    问题一: 报错如下: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assig ...

  9. Java-API-Package:java.sql百科

    ylbtech-Java-API-Package:java.sql百科 提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API.此 API 包括一个框架,凭借 ...

随机推荐

  1. iOS 中json解析数据出现中文乱码的问题

    一般服务器的编码格式都是UTF8,这样通过json解析下来的的数据,一般中文是不会出现乱码,但是如果服务器的编码格式不是UTF8,通过json解析的数据中的中文容易出现luan乱码,怎么解决这个问题呢 ...

  2. 通过API获取 Portus+registry docker仓库信息

    接口获取docker centos 镜像的 tag 列表脚本 # -*- encoding:utf-8 -*- import requests import json ""&quo ...

  3. GDUT决赛题解

    决赛,我自我认为题目难度更大,反而我的心态更好了. 由于放轻松的时候反而效果更好,跟昨天的观点一样,凡是可以1A的,才算这题做得好. A.数目不大,关键是看懂题(我自己连输入输出是什么都不清楚.... ...

  4. SSH 错误解决案例1:Read from socket failed: Connection reset by peer

    今天早上天天连接的开发机突然报出连接错误. 这个错误是SSH最常见错误,造成的原因也是千奇百怪(具体可goole),下面描述我的server的问题: 客户端报错 [root@server]# ssh ...

  5. Splunk 会议回想: 大数据的关键是机器学习

    作者 Jonathan Allen ,译者 张晓鹏 Splunk的用户大会已经接近尾声.三天时间的会议里,共进行了160多个主题研讨.涵盖了从安全.运营到商业智能.甚至包含物联网,会议中一遍又一遍出现 ...

  6. World Wind Java开发之三 显示状态栏信息

    先来看下本篇博客索要达到的效果: 找到源代码下的gov.nasa.worldwind.util下的StatusBar.java文件,能够看到状态栏显示的信息主要包含视点高度以及相应空间点三维坐标以及是 ...

  7. Django——正则表达式的举例与基本语法

    如果想在URLconf中加入URL和view,只需增加映射URL模式和view功能的Python tuple即可. 这里演示如何添加view中hello功能. from django.conf.url ...

  8. UnrealEngine4.5 BluePrint初始化中遇到编译警告的解决办法

    今天遇到一个问题,如下图: 假如你在一个BP的初始化脚本里用了"Get Player Character",编译BP时候就会遇到上述警告(Warning Function ' Ge ...

  9. 《深入PHP:面向对象、模式与实践》(一)

    第1章  PHP:设计与管理 本章主要介绍了本书有哪些内容. 第2章  PHP与对象 本章总结了PHP面向对象特性的发展过程,逐步介绍对象的概念. PHP/FI:支持变量.关联数组和函数.没有对象. ...

  10. poj 2409 Let it Bead Polya计数

    旋转能够分为n种置换,相应的循环个数各自是gcd(n,i),个i=0时不动,有n个 翻转分为奇偶讨论,奇数时有n种置换,每种有n/2+1个 偶数时有n种置换,一半是n/2+1个,一半是n/2个 啃论文 ...