【发布时间】:2015-07-03 15:34:34
【问题描述】:
我想知道 JDBC 是如何知道它应该使用哪个数据库驱动程序类的。
例子:
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Connection verbindung = DriverManager.getConnection("jdbc:derby:d:/memory/onlineshop;create=true");
第一行需要注意,驱动程序 (EmbeddedDriver) 将被加载到类加载器中(因此可用,例如用于反射,对吧?)。
所以,下一行是我的连接字符串。开头是:
jdbc:derby:...
我期待的是这样的:
jdbc:ConcreteDriverClassForInit
如您所见,我缺少在类加载器中加载的类与该类的连接字符串调用之间的链接。
我在 derby 档案中搜索了一个名为“Derby.Class”的类 - 但没有这样的类。
即使我尝试某事。像这样,JDBC还是知道的,怎么办:
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Class.forName("org.something.anyotherDBDriver1");
Class.forName("org.something.anyotherDBDriver2");
Connection verbindung = DriverManager.getConnection("jdbc:derby:d:/memory/onlineshop;create=true");
但是为什么呢? 感谢您的帮助!
【问题讨论】:
-
Here's the source code. 逻辑发生在here。
标签: java database jdbc database-connection