2009-12-06 99 views
2

任何人都可以解释我这些类和方法吗?帮我连接java和oracle

DriverManager.registerDriver 
(new oracle.jdbc.driver.OracleDriver()); 
conn = java.sql.DriverManager.getConnection(
"jdb:ocracle:thin:username/[email protected]:1234:dbSID"); 

感谢

+0

您的JDBC URL中有几个输入错误。应该像“jdbc:oracle:”开始: – 2009-12-06 09:55:51

回答

0

DriverManager类的Java处理数据库和JDBC驱动程序,路由数据库之间的连接I/O,以正确的JDBC驱动程序(你可以有多种类型的多个驱动器开启的,即连接的数据库)。

驱动程序向DriverManager注册,以便它们成为其工作集的一部分。下一步是创建与数据库的连接,以便可以运行查询。这是通过

Connection conn = DriverManager.getConnection("jdb:ocracle:thin:username/[email protected]:1234:dbSID") 

方法。传递给getConnection()方法的连接字符串是特定于驱动程序的,您需要为每个驱动程序提供RTFM。需要注意的是DriverManager从它的注册驱动程序的列表自动选择驱动程序,根据您在通过连接字符串的语法。

返回的Connection对象是你准备语句和运行查询对数据库手柄

+0

根据javadoc:应用程序不再需要使用Class.forName()来显式加载JDBC驱动程序。当前使用Class.forName()加载JDBC驱动程序的程序将继续工作而不进行修改。 – Bozho 2009-12-06 11:27:46

+0

请原谅因为兼容性约束 – 2009-12-06 11:34:06

+0

而被困在1.4.2中的可怜的混蛋,“不推荐的方式”是一个错误的陈述。 – Bozho 2009-12-06 11:51:31

4

对此事进行了很好的教程,让我们来解码你的代码块的行:

1. DriverManager.registerDriver 
2. (new oracle.jdbc.driver.OracleDriver()); 
3. conn = java.sql.DriverManager.getConnection(
4. "jdbc:oracle:thin:username/[email protected]:1234:dbSID"); 

线路2:

创建的oracle.jdbc.driver.OracleDriver一个新实例,一个JDBC Driver用于Oracle数据库。 JDBC驱动程序实现由JDBC API定义的接口和类,程序员用它来连接数据库并执行查询。

行1

寄存器的oracle.jdbc.driver.OracleDriver的实例的DriverManager类,这是JDBC的传统管理层,所述用户和所述驱动器之间的工作。它处理在数据库和适当的驱动程序之间建立连接。

3号线:

现在,JDBC应用程序和数据库之间的通信层是准备好了,你可以创建通过调用DriverManagergetConnection()方法的连接。

第4行:

这是“连接字符串”或“数据库URL”。这String标识您要连接到的数据库。该URL的方案特定于数据库提供者和/或驱动程序(这里是Oracle及其“瘦”驱动程序)。


注意,之前Java 6中,调用Class.forName是加载和注册JDBC驱动程序的首选方式。这是Driver致电DriverManager.registerDriver的责任。

[...]所有Driver类应与创建该类的一个实例,然后它被加载时与DriverManager类注册它的静态部分(静态初始化)被写入。因此,用户通常不会直接拨打DriverManager.registerDriver;它在加载时应该由Driver类自动调用。

查看JDBC文档中的Driver Manager章节以获取更多详细信息。

+0

感谢名单4乌拉圭回合答案 我真的认识到 好运 RAQ报告 www.raqsoft.com – wayne 2009-12-07 05:13:48

+0

您应该知道oracle.jdbc.driver软件包已被Oracle拒绝供客户使用。从现在起,应该使用oracle.jdbc包。 – 2009-12-07 19:25:54