java.sql.* 和javax.sql.*

本文详细介绍了Java中用于数据库连接的两个重要包:java.sql.* 和 javax.sql.* 的区别与联系。java.sql.* 提供了基本的数据库操作功能,而 javax.sql.* 则在此基础上增加了连接池管理、分布式事务处理等高级特性。

【转】java.sql.* 和javax.sql.*

  (2011-06-25 23:10:06)
  分类: J2EE

原文链接

java.sql:   
  包含的接口和类采用传统的C/S体系结构设计思想.主要功能针对基本数据库编程服务,如生成连接,执行语句以及准备语句和运行批处理语句.也有一些高级功能如批处理更新,可滚动结果集,事务隔离以及SQL数据类型.   
    
  javax.sql   
  引入了JDBC编程方面一些主要的体系结构改变,并且为连接管理,分布式事务处理和老式连接提供了更好的抽象.这个包也引入了容器管理的连接缓冲池,分布式事务以及行集(rowset)   

 

java.sql.*是jdbc2.0之前的东西   
javax.sql.*包括了jdbc3.0的特性   
    
  javax.sql.*提供了很多新特性,是对java.sql的补充,具体提供了一下方面的功能   
  (1)Datasource接口提供了一种可选择性的方式去建立连接   
  (2)提供了连接池的支持   
  (3)增加了分布式的事务处理机制   
  (4)增加了rowset


下面是一些具体的函数:

 

5.1 java.sql包

JDBC核心类库包含在java.sql包中。java.sql包中的注释(annotations)、枚举、类和接口如下。注释、枚举和类使用粗体;接口使用正常字体。

java.sql.AutoGeneratedKeys 
java.sql.Array
java.sql.BaseQuery
java.sql.BatchUpdateException 
java.sql.Blob
java.sql.CallableStatement
java.sql.ClientInfoException 
java.sql.Column 
java.sql.Clob
java.sql.Connection
java.sql.DataSet
java.sql.DataTruncation 
java.sql.DatabaseMetaData
java.sql.Date 
java.sql.Driver
java.sql.DriverManager 
java.sql.DriverPropertyInfo 
java.sql.NClob
java.sql.ParameterMetaData
java.sql.PreparedStatement
java.sql.Query 
java.sql.QueryObjectFactory 
java.sql.QueryObjectGenerator
java.sql.Ref
java.sql.ResultSet
java.sql.ResultSetMetaData
java.sql.RowId
java.sql.RowIdLifeTime 
java.sql.Savepoint
java.sql.SQLData
java.sql.SQLDataException 
java.sql.SQLException 
java.sql.SQLInput
java.sql.SQLIntegrityConstraintViolationException 
java.sql.SQLInvalidAuthorizationSpecException 
java.sql.SQLNonTransientConnectionException 
java.sql.SQLNonTransientException 
java.sql.SQLOutput
java.sql.SQLPermission
java.sql.SQLSyntaxErrorException 
java.sql.SQLTimeoutException 
java.sql.SQLTransactionRollbackException 
java.sql.SQLTransientConnectionException 
java.sql.SQLTransientException 
java.sql.SQLXML
java.sql.SQLWarning 
java.sql.Statement
java.sql.Struct
java.sql.Table 
java.sql.Time 
java.sql.Timestamp 
java.sql.Types 
java.sql.Update 
java.sql.Wrapper

下列类和接口是新增的或经过修改的。新的类和接口用粗体标出。

java.sql.AutoGeneratedKeys 
java.sql.BaseQuery 
java.sql.Blob
java.sql.CallableStatement
java.sql.ClientInfoException 
java.sql.Clob
java.sql.Column 
java.sql.Connection
java.sql.DatabaseMetaData
java.sql.NClob 
java.sql.PreparedStatement
java.sql.Query 
java.sql.QueryObjectFactory 
java.sql.QueryObjectGenerator 
java.sql.ResultSet
java.sql.RowId 
java.sql.RowIdLifeTime 
java.sql.SQLDataException 
java.sql.SQLException
java.sql.SQLIntegrityConstraintViolationException 
java.sql.SQLInvalidAuthorizationSpecException 
java.sql.SQLNonTransientConnectionException 
java.sql.SQLNonTransientException 
java.sql.SQLSyntaxErrorException 
java.sql.SQLTimeoutException 
java.sql.SQLTransactionRollbackException 
java.sql.SQLTransientConnectionException 
java.sql.SQLTransientException 
java.sql.SQLXML 
java.sql.SQLWarning
java.sql.Statement
java.sql.Table 
java.sql.Types
java.sql.Update 
java.sql.Wrapper 
javax.sql.CommonDataSource 
javax.sql.StatementEvent 
javax.sql.StatementEventListener


【转】java.sql.* <wbr>和javax.sql.*

图5-1显示了java.sql包中关键类和接口之间的交互和关系,以及用于创建语句、设置参数、检索结果的方法。

 


 

5.2 javax.sql包

java.sql包中的类和接口如下。类使用粗体;接口使用正常字体。

javax.sql.CommonDataSource
javax.sql.ConnectionEvent 
javax.sql.ConnectionEventListener
javax.sql.ConnectionPoolDataSource
javax.sql.DataSource
javax.sql.PooledConnection
javax.sql.RowSet
javax.sql.RowSetEvent 
javax.sql.RowSetInternal
javax.sql.RowSetListener
javax.sql.RowSetMetaData
javax.sql.RowSetReader
javax.sql.RowSetWriter
javax.sql.StatementEvent 
javax.sql.StatementEventListener
javax.sql.XAConnection
javax.sql.XADataSource

 


注意  :javax.sql包中的类和接口最开始是作为JDBC 2.0可选包引入的。可选包独立于java.sql包提供。 现在两者都包含在J2SE 1.4中。

图5-2,图5-3,图5-4和图5-5显示了以下功能领域中关键类和接口之间的关系:DataSource对象,池化连接,分布式事务,行集。

【转】java.sql.* <wbr>和javax.sql.*

图5-2 javax.sql.DataSource和java.sql.Connection之间的关系

【转】java.sql.* <wbr>和javax.sql.*
图5-3 连接池化过程中涉及的关系

【转】java.sql.* <wbr>和javax.sql.*

图5-4 分布式事务支持中涉及的关系

【转】java.sql.* <wbr>和javax.sql.*





 

图5-5 行集涉及的关系


也可参照http://www.pgsqldb.org/twiki/bin/view/PgSQL/类和接口

java.sql提供了与数据库交互的核心功能。使用方面,javax.sql提供编好的数据源连接 - datasource,它类似于java.sql提供的DriverManager,二者都提供了建立数据库连接的方法,还能设置连接的最大超时时间、获取流、登录等操作[^1]。 在含的类接口中,有CallableStatement接口,它对所有的DBMS提供了一种以标准形式调用存储过程的方法。存储过程存储在数据库中,对存储过程的调用是CallableStatement对象所含的内容。调用使用换码语法,有带结果参数不带结果参数2种形式。结果参数是一种输出(OUT)参数,为存储过程的返回值,这2种形式都可带有数量可变的输入(IN参数)、输出(OUT参数)或输入输出(INOUT参数)的参数,文号将用作参数的占位符[^2]。 以下是一个简单的使用java.sql建立数据库连接并执行查询的示例代码: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class JavaSQLExample { public static void main(String[] args) { try { // 加载数据库驱动 Class.forName("com.mysql.cj.jdbc.Driver"); // 建立数据库连接 Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/yourdatabase", "yourusername", "yourpassword"); // 创建Statement对象 Statement statement = connection.createStatement(); // 执行查询 ResultSet resultSet = statement.executeQuery("SELECT * FROM yourtable"); // 处理结果集 while (resultSet.next()) { System.out.println(resultSet.getString(1)); } // 关闭资源 resultSet.close(); statement.close(); connection.close(); } catch (Exception e) { e.printStackTrace(); } } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值