究竟什么是数据源?它有什么不同?

时间:2013-02-07 11:43:05

标签: java jdbc jdbc-odbc

当我尝试与Oracle数据库建立连接时,我不得不写

Connection CON = DriverManager.getConnection("jdbc:odbc:Dan", "system", "noodles");

这里,Dan是数据源名称,不是吗?如果我在数据源为cBC时创建了一个名为Dan的表,如果我重命名数据源并在表中输入更多行,该怎么办?它有什么不同?

1 个答案:

答案 0 :(得分:2)

Dan是计算机上配置的ODBC连接的名称。名称本身并不重要,只要它配置为连接的数据库是相同的,如果您将其称为DanMyDatabasefoobar,则无关紧要。

请注意,访问外部配置的数据库的这种特定方式通常不是JDBC所做的事情,它是JDBC-ODBC桥的特定行为(允许您通过JDBC访问ODBC连接)。

其他JDBC驱动程序(例如MySQL)使用不同的语法,其中访问数据库的必要配置在URL中进行编码:jdbc:mysql://myDbServer/myDbName

另请注意,JDBC-ODBC bridge从未用于生产质量的数据库连接(甚至可以在Java 8中删除它!)。这只是使用现有设置的快捷方式。

对于Oracle DB连接,您应该使用appropriate Type 4 driver from Oracle。这些驱动程序使用jdbc:oracle:thin:@//<host>:<port>/ServiceName形式的URL(一般来说,jdbc:之后的部分标识要使用的JDBC驱动程序。)