Package java.sql
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
DriverManagerfacilityDriverManagerclass -- makes a connection with a driverSQLPermissionclass -- provides permission when code running within a Security Manager, such as an applet, attempts to set up a logging stream through theDriverManagerDriverinterface -- provides the API for registering and connecting drivers based on JDBC technology ("JDBC drivers"); generally used only by theDriverManagerclassDriverPropertyInfoclass -- provides properties for a JDBC driver; not used by the general user
- Sending SQL statements to a database
Statement-- used to send basic SQL statementsPreparedStatement-- used to send prepared statements or basic SQL statements (derived fromStatement)CallableStatement-- used to call database stored procedures (derived fromPreparedStatement)Connectioninterface -- provides methods for creating statements and managing connections and their propertiesSavepoint-- provides savepoints in a transaction
- Retrieving and updating the results of a query
ResultSetinterface
- Standard mappings for SQL types to classes and interfaces in the Java programming language
Arrayinterface -- mapping for SQLARRAYBlobinterface -- mapping for SQLBLOBClobinterface -- mapping for SQLCLOBDateclass -- mapping for SQLDATENClobinterface -- mapping for SQLNCLOBRefinterface -- mapping for SQLREFRowIdinterface -- mapping for SQLROWIDStructinterface -- mapping for SQLSTRUCTSQLXMLinterface -- mapping for SQLXMLTimeclass -- mapping for SQLTIMETimestampclass -- mapping for SQLTIMESTAMPTypesclass -- provides constants for SQL types
- Custom mapping an SQL user-defined type (UDT) to a class in the Java programming language
SQLDatainterface -- specifies the mapping of a UDT to an instance of this classSQLInputinterface -- provides methods for reading UDT attributes from a streamSQLOutputinterface -- provides methods for writing UDT attributes back to a stream
- Metadata
DatabaseMetaDatainterface -- provides information about the databaseResultSetMetaDatainterface -- provides information about the columns of aResultSetobjectParameterMetaDatainterface -- provides information about the parameters toPreparedStatementcommands
- Exceptions
SQLException-- thrown by most methods when there is a problem accessing data and by some methods for other reasonsSQLWarning-- thrown to indicate a warningDataTruncation-- thrown to indicate that data may have been truncatedBatchUpdateException-- 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
Shardingsupport - Enhanced
Connectionto be able to provide hints to the driver that a request, an independent unit of work, is beginning or ending - Enhanced
DatabaseMetaDatato determine if Sharding is supported - Added the method
driverstoDriverManagerto return a Stream of the currently loaded and available JDBC drivers - Added support to
Statementfor 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
JDBCTypeenum andSQLTypeinterface - Support for
REF CURSORSinCallableStatement DatabaseMetaDatamethods 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
Connection,ResultSetandStatementobjects to be used with the try-with-resources statement - Support added to
CallableStatementandResultSetto specify the Java type to convert to via thegetObjectmethod DatabaseMetaDatamethods to return PseudoColumns and if a generated key is always returned- Added support to
Connectionto specify a database schema, abort and timeout a physical connection. - Added support to close a
Statementobject when its dependent objects have been closed - Support for obtaining the parent logger for a
Driver,DataSource,ConnectionPoolDataSourceandXADataSource
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.Driverclass viaClass.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
PreparedStatementthat is associated with aPooledConnectionhas 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
PreparedStatementobject - Ability to retrieve values from automatically generated columns
- Ability to have multiple
ResultSetobjects returned fromCallableStatementobjects open at the same time - Ability to identify parameters to
CallableStatementobjects by name as well as by index ResultSetholdability -- 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
Refobject references - Ability to programmatically update
BLOB,CLOB,ARRAY, andREFvalues. - Addition of the
java.sql.Types.DATALINKdata 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
ResultSetinterface 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
ResultSetupdater 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.BigDecimalvalues, 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
DataSourceinterface as a means of making a connection. The Java Naming and Directory Interface™ (JNDI) is used for registering aDataSourceobject 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
RowSettechnology -- 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:
- Defining the SQL structured type or
DISTINCTtype in SQL - Defining the class in the Java programming language to which the SQL UDT will be mapped. This class must implement the
SQLDatainterface. - Making an entry in a
Connectionobject's type map that contains two things:- the fully-qualified SQL name of the UDT
- the
Classobject for the class that implements theSQLDatainterface
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的更多相关文章
- java.sql.preparedstatement和java.sql.statement的区别
本文转自CSDN,然后整理了一遍.原文出处:CSDN JDBC(java database connectivity,java数据库连接)的api中的主要的四个类之一的java.sql.stateme ...
- 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 ...
- 解决Apache CXF 不支持传递java.sql.Timestamp和java.util.HashMap类型问题
在项目中使用Apache开源的Services Framework CXF来发布WebService,CXF能够很简洁与Spring Framework 集成在一起,在发布WebService的过程中 ...
- JAVA学习.java.sql.date 与java.util.date以及gettime()方法的分析
java.sql.Date 是针对SQL语句使用的,它只包含日期而没有时间部分. java.util.Date 就是在除了SQL语句的情况下面使用. 它都有getTime方法返回毫秒数,返回的是自19 ...
- Java sql helper[转]
原文:http://www.cnblogs.com/beijiguangyong/archive/2011/12/10/2302737.html package sql; import java.sq ...
- Error getting nested result map values for 'company'. Cause: java.sql.SQLException: Invalid value for getInt() - 'NFHK188'
我今天遇到一个我不解的问题,是mybatis多对一关系查询出问题了,但是我自己还是解决了,在网上也查过那个错误,可是找不到我想要的.不知道你们遇到过没有,我接下来分享给大家.希望我这个第一篇博客能帮助 ...
- java.sql.SQLException: Can not issue empty query.
1.错误描述 java.sql.SQLException: Can not issue empty query. at com.mysql.jdbc.SQLError.createSQLExcepti ...
- 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 ...
- Java-API-Package:java.sql百科
ylbtech-Java-API-Package:java.sql百科 提供使用 JavaTM 编程语言访问并处理存储在数据源(通常是一个关系数据库)中的数据的 API.此 API 包括一个框架,凭借 ...
随机推荐
- 【日志处理、监控ELK、Kafka、Flume等相关资料】
服务介绍 随着实时分析技术的发展及成本的降低,用户已经不仅仅满足于离线分析.目前我们服务的用户包括微博,微盘,云存储,弹性计算平台等十多个部门的多个产品的日志搜索分析业务,每天处理约32亿条(2TB) ...
- How to rebuild RPM database on a Red Hat Enterprise Linux system?
本文是笔者最近遇到的一个故障的处理过程,解决方案是Rebuild RPM 的DB,后面内容其实是REDHAT官方的solutions,不过我遇到的现象和解决方案都与官方有点出入,故一直帖出来: 我遇到 ...
- Python测试Kafka集群(kafka-python)
生产者代码: import time from kafka import SimpleProducer, KafkaClient from kafka import KafkaProducer pro ...
- easyUI表头样式
easyUI表头样式 学习了:https://blog.csdn.net/lucasli2016/article/details/53606609 easyUI的样式定义在easyui.css中 表头 ...
- [Mac A]如何学习Mac编程?
http://ourcoders.com/thread/show/5550/ @tinyfool 看了您在quora上回答的『为什么说程序员是最好的职业』,加上本来就想学编程(但是一直以来因为各种借口 ...
- activiti入门3排他网关,并行网管,包括网关,事件网关
网关用来控制流程的流向 网关能够消费也能够生成token. 网关显示成菱形图形,内部有有一个小图标. 图标表示网关的类型. 基本分支 首先 利用 流程变量 写个带有分支的一个基本流程 流程图: wa ...
- T420s成功加装固态硬盘(SSD)
目的 为了提升系统和经常使用工具的启动速度,ThinkPad T420s光驱位加一块固态硬盘. 操作步骤 购买:没做太多对照了解,初步计划是安装在光驱位,直接JD上买了SanDisk的128G和推荐的 ...
- java 线程的几种状态(转载)
java thread的运行周期中, 有几种状态, 在 java.lang.Thread.State 中有详细定义和说明: NEW 状态是指线程刚创建, 尚未启动 RUNNABLE 状态是线程正在 ...
- java之super关键字
super关键字: 在java中使用super来引用基类的成分. 程序code: class FatherClass{ public int value; public void f(){ value ...
- linux文本命令
1.find和grep find命令的作用是在目录中根据文件名搜索文件,grep命令的作用是在目录中根据文件内容搜索文件,find和grep的使用权限是所有用户. (1)find命令: find 列出 ...