|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
手机用到的是用j2me所编出来的小程序。
DriverManager类是JDBC的办理层,感化于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和响应驱动程序之间创建毗连。别的,DriverManager类也处置诸如驱动程序登录工夫限定及登录和跟踪动静的显现等事件。
关于复杂的使用程序,一样平常程序员必要在此类中间接利用的独一办法是DriverManager.getConnection。正如称号所示,该办法将创建与数据库的毗连。JDBC同意用户挪用DriverManager的办法getDriver、getDrivers和registerDriver及Driver的办法connect。但多半情形下,让DriverManager类办理创建毗连的细节为下策。
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类翻开毗连时,它仅利用当地文件体系或与收回毗连哀求的代码不异的类加载器供应的驱动程序。
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");
前些天,在CSDN上看到了一个消息,说是net网页编程网页编程AJAX成功在Linux上运行,这一点对我触动很大,而且引发了我许多感叹,所以想写出来分享一下。 |
|