仓酷云

标题: JAVA网页编程之JDBCTM 指南:进门3 - DriverManager [打印本页]

作者: 乐观    时间: 2015-1-18 11:54
标题: JAVA网页编程之JDBCTM 指南:进门3 - DriverManager
通过视频学习比传统的大课堂学习更适合成人化的学习规律。有人说大课堂气氛好,学习氛围浓,热闹,可以认识很多人。内容:
3-DriverManager
3.1概述
DriverManager类是JDBC的办理层,感化于用户和驱动程序之间。
它跟踪可用的驱动程序,并在数据库和响应驱动程序之间创建毗连。
别的,DriverManager类也处置诸如驱动程序登录工夫限定及登录和
跟踪动静的显现等事件。

关于复杂的使用程序,一样平常程序员必要在此类中间接利用的独一办法
是DriverManager.getConnection。正如称号所示,该办法将创建与
数据库的毗连。JDBC同意用户挪用DriverManager的办法
getDriver、getDrivers和registerDriver及Driver的办法
connect。但多半情形下,让DriverManager类办理创建毗连的细
节为下策。


3.1.1跟踪可用驱动程序
DriverManager类包括一列Driver类,它们已经由过程挪用办法
DriverManager.registerDriver对本人举行了注册。一切Driver
类都必需包括有一个静态部分。它创立该类的实例,然后在加载该
实例时DriverManager类举行注册。如许,用户一般情形下将不会
间接挪用DriverManager.registerDriver;而是在加载驱动程序时
由驱动程序主动挪用。加载Driver类,然后主动在DriverManager
中注册的体例有两种:


经由过程挪用办法Class.forName。这将显式地加载驱动程序类。因为这
与内部设置有关,因而保举利用这类加载驱动程序的办法。以下代码
加载类acme.db.Driver:
Class.forName("acme.db.Driver");

假如将acme.db.Driver编写为加载时创立实例,并挪用以该实例为
参数的DriverManager.registerDriver(本该云云),则它在
DriverManager的驱动程序列表中,并可用于创立毗连。


经由过程将驱动程序增加到java.lang.System的属性jdbc.drivers中
这是一个由DriverManager类加载的驱动程序类名的列表,由冒号
分开:初始化DriverManager类时,它搜刮体系属性jdbc.drivers,
假如用户已输出了一个或多个驱动程序,则DriverManager类将试图加载它们。
以下代码申明程序员怎样在~/.hotjava/properties中输出三个驱动程序类(
启动时,HotJava将把它加载到体系属性列表中):
jdbc.drivers=foo.bah.Driver:wombat.sql.Driver:bad.test.ourDriver;

对DriverManager办法的第一次挪用将主动加载这些驱动程序类。

注重:加载驱动程序的第二种办法必要耐久的预设情况。假如对这一点不克不及
包管,则挪用办法Class.forName显式地加载每一个驱动程序就显得更加
平安。这也是引进特定驱动程序的办法,由于一旦DriverManager类被初始化,它
将不再反省jdbc.drivers属性列表。

在以上两种情形中,新加载的Driver类都要经由过程挪用DriverManager.registerDriver
类举行自我注册。如上所述,加载类时将主动实行这一历程。

因为平安方面的缘故原由,JDBC办理层将跟踪哪一个类加载器供应哪
个驱动程序。如许,当DriverManager类翻开毗连时,它仅利用
当地文件体系或与收回毗连哀求的代码不异的类加载器供应的驱动程序。


3.1.2创建毗连
加载Driver类并在DriverManager类中注册后,它们便可用来与数
据库创建毗连。当挪用DriverManager.getConnection办法收回毗连
哀求时,DriverManager将反省每一个驱动程序,检察它是不是能够创建毗连。

偶然大概有多个JDBC驱动程序能够与给定的URL毗连。比方,与
给定远程数据库毗连时,可使用JDBC-ODBC桥驱动程序、JDBC到
通用收集协定驱动程序或数据库厂商供应的驱动程序。在这类情形下
测试驱动程序的按次相当主要,由于DriverManager将利用它所找到
的第一个能够乐成毗连到给定URL的驱动程序。

起首DriverManager试图按注册的按次利用每一个驱动程序
(jdbc.drivers中列出的驱动程序老是先注册)。它将跳过代码不成
信托的驱动程序,除非加载它们的源与试图翻开毗连的代码的源不异。

它经由过程轮番在每一个驱动程序上挪用办法Driver.connect,并向它们传
递用户入手下手传送给办法DriverManager.getConnection的URL来对驱
动程序举行测试,然后毗连第一个认出该URL的驱动程序。

这类办法初看起来效力不高,但因为不成能同时加载数十个驱动程序,
因而每次毗连实践只需几个历程挪用和字符串对照。

以下代码是一般情形下用驱动程序(比方JDBC-ODBC桥驱动程序)
创建毗连所需一切步骤的示例:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序
Stringurl="jdbc:odbc:fred";
DriverManager.getConnection(url,"userID","passwd");



 
在性能方面,在windows平台下,.net可能是占强项,要是把.net放在sun开发的操作系统上去运行呢?根本就运行不了,.net对其它操作系统的支持也很弱,性能也可能比不上java。
作者: 若天明    时间: 2015-1-21 16:58
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者: 不帅    时间: 2015-1-30 21:26
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者: 飘飘悠悠    时间: 2015-2-4 13:59
Java 编程语言的风格十分接近C、C++语言。
作者: 深爱那片海    时间: 2015-2-5 04:01
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者: 透明    时间: 2015-2-6 09:55
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者: 小魔女    时间: 2015-2-8 16:20
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者: 再现理想    时间: 2015-2-13 06:38
是一种使用者不需花费很多时间学习的语言
作者: 莫相离    时间: 2015-2-14 02:47
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
作者: 小女巫    时间: 2015-3-2 16:15
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
作者: 爱飞    时间: 2015-3-10 05:40
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
作者: 第二个灵魂    时间: 2015-3-11 11:06
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
作者: 分手快乐    时间: 2015-3-11 22:46
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
作者: 若相依    时间: 2015-3-16 21:11
是一种使用者不需花费很多时间学习的语言
作者: 冷月葬花魂    时间: 2015-3-18 23:08
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者: 老尸    时间: 2015-3-22 18:17
是一种语言,用以产生「小应用程序(Applet(s))
作者: 精灵巫婆    时间: 2015-3-28 04:09
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者: 灵魂腐蚀    时间: 2015-4-13 00:21
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
作者: 金色的骷髅    时间: 2015-4-16 00:09
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 愤怒的大鸟    时间: 2015-4-16 16:11
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
作者: 蒙在股里    时间: 2015-4-22 04:33
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2