JDBC2.0扩展API(2)

原创 2001年08月24日 13:22:00
下面我们来介绍JDBC2.0的标准扩展API。标准扩展API分为如下几个方面:
  1、 DataSource接口:和Java名字目录服务(JNDI)一起工作的数据源接口。它提供了对数 吹囊恢指玫牧臃椒ā?br>  2、 Connection pooling(连接池):可以重复使用连接,而不是对每个请求都使用一个新的连接。
  3、 Distrubute transaction(分布式的事务):在一个事务中涉及到了多个数据库服务器。
  4、 Rowsets:JavaBean组件包含了结果集,主要用来将数据传给瘦客户,或者提供一个可以滚动的结果集。
  下面我们一个一个来介绍:
  一、DataSource接口是一个更好的连接数据源的方法:
  JDBC1.0是原来是用DriverManager类来产生一个对数据源的连接。JDBC2.0用一种替代的方法,使用DataSource的实现,代码变的更小巧精致,也更容易控制。
  一个DataSource对象代表了一个真正的数据源。根据DataSource的实现方法,数据源既可以是从关系数据库,也电子表格,还可以是一个表格形式的文件。当一个DataSource对象注册到名字服务中,应用程序就可以通过名字服务获得DataSource对象,并用它来产生一个与DataSource代表的数据源之间的连接。
  关于数据源的信息和如何来定位数据源,例如数据库服务器的名字,在哪台机器上,端口号等等,都包含在DataSource对象的属性里面去了。这样,对应用程序的设计来说是更方便了,因为并不需要硬性的把驱动的名字写死到程序里面去。通常驱动名字中都包含了驱动提供商的名字,而在DriverManager类中通常是这么做的。如果数据源要移植到另一个数据库驱动中,代码也很容易做修改。所需要做的修改只是更改DataSource的相关的属性。而使用DataSource对象的代码不需要做任何改动。
  由系统管理员或者有相应权限的人来配置DataSource对象。配置DataSource,包括设定DataSource的属性,然后将它注册到JNDI名字服务中去。在注册DataSource对象的的过程中,系统管理员需要把DataSource对象和一个逻辑名字关联起来。名字可以是任意的,通常取成能代表数据源并且容易记住的名字。在下面的例子中,名字起为:InventoryDB,按照惯例,逻辑名字通常都在jdbc的子上下文中。这样,逻辑名字的全名就是:jdbc/ InventoryDB。
  一旦配置好了数据源对象,应用程序设计者就可以用它来产生一个与数据源的连接。下面的代码片段示例了如何用JNDI上下文获得一个一个数据源对象,然后如何用数据源对象产生一个与数据源的连接。开始的两行用的是JNDI API,第三行用的才是JDBC的API:
   Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("jdbc/InventoryDB");Connection con = ds.getConnection("myPassword", "myUserName");
  在一个基本的DataSource实现中,DataSource.getConnection方法返回的Connection对象和用DriverManager.getConnection方法返回的Connection对象是一样的。因为DataSource提供的方便性,我们推荐使用DataSource对象来得到一个Connection对象。我们希望所以的基于JDBC2.0技术的数据库驱动都包含一个基本的DataSource的实现,这样就可以在应用程序中很容易的使用它。
  对于普通的应用程序设计者,是否使用DataSource对象只是一个选择问题。但是,对于那些需要用的连接池或者分布式的事务的应用程序设计者来说,就必须使用DataSource对象来获得Connection,原因在下面我们会提到。

HTML5脚本扩展---新增小型API

1.      H5新增选择器( SelectorsAPI ) 1)      H5之前的选择器 document.getElementById("p1");//获取ID为p1的那个元素,返回一个...
  • ll_xiaohanqing_91
  • ll_xiaohanqing_91
  • 2016年04月23日 17:05
  • 994

vs2013配置opencv3.2扩展部分

OpenCV从2.x到3.x是一个很大的转变,对于很多功能不完善、性能不稳定的模块,都被方法了extra_modules(扩展模块)里面了。这样倒是稳定了,但是对于我这样的新手,要添加这些扩展模块却是...
  • qq389445046
  • qq389445046
  • 2017年03月29日 21:50
  • 717

Chrome浏览器扩展开发系列之十七:扩展中可用的chrome.events API

chrome.events中定义了一些常见的事件类型,可以供Chrome浏览器扩展程序发出对应的事件对象。 对于关注的事件,首先要通过addListener()在对应的事件上注册监听器,示例如下...
  • fkepgydhbyuan
  • fkepgydhbyuan
  • 2016年11月24日 09:38
  • 971

为PHP开发C++扩展

http://blog.csdn.net/w1552332103/article/details/39227147 摘要 有时候,单纯依靠 PHP “本身”是不行的。尽管普...
  • ztguang
  • ztguang
  • 2016年02月01日 00:00
  • 497

PHP扩展开发—LINUX环境

LINUX环境下开发PHP扩展的步骤如下:1、下载PHP源码,解压,我的解压目录是:/root/lamp/php-5.5.372、cd到/root/lamp/php-5.5.37/ext目录下,创建文...
  • anda0109
  • anda0109
  • 2016年08月04日 09:13
  • 940

DOM扩展:DOM API的进一步增强[总结篇-上]

DOM1级主要定义了文档的底层结构,并提供了基本的查询操作的API,总体而言这些API已经比较完善,我们可以通过这些API完成大部分的DOM操作。然而,为了扩展DOM API的功能,同时进一步提高DO...
  • liumulinsp
  • liumulinsp
  • 2016年01月07日 15:05
  • 490

Chrome浏览器扩展开发系列之十六:扩展中可用的Chrome浏览器API

除了Chrome浏览器支持的chrome.* API之外,Chrome浏览器扩展还可以使用Chrome浏览器为Web页面或Chrome app提供的APIs。对于Chrome浏览器2支持的API,还可...
  • fkepgydhbyuan
  • fkepgydhbyuan
  • 2016年11月24日 09:38
  • 2587

chrome如何添加一个extension的api

好的好的,这里演示的是如何在chrome里添加一个extebsuib的api.
  • gensmusic
  • gensmusic
  • 2014年06月06日 15:14
  • 847

Web API扩展机制简单比较

在HTML5越来越普及的情况下,Web引擎通过各自的机制提供了不同的Web API(包括但不限于W3C标准API)给Web应用开发者,开发者可以充分利用这些WebAPI开发出跨平台(基于标准API)的...
  • woweiwokuang0000
  • woweiwokuang0000
  • 2015年03月18日 19:19
  • 877

Mysql Cluster水平扩展-添加数据节点

一:实验环境     已搭建好mysql cluster(一个管理节点,2个sql节点及2个数据节点),搭建步骤请参考:http://blog.csdn.net/yabingshi_tech/arti...
  • YABIGNSHI
  • YABIGNSHI
  • 2015年08月24日 16:36
  • 2261
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JDBC2.0扩展API(2)
举报原因:
原因补充:

(最多只允许输入30个字)