從Java documentation的Class.forName似乎仍然需要
在JDBC的早期版本,以獲得一個連接,你首先必須通過調用方法Class.forName初始化JDBC驅動程序。
自動加載在類路徑中找到的任何JDBC 4.0驅動程序。 (但是,您必須手動加載之前,JDBC 4.0任何驅動程序與方法Class.forName。)
我有一個連接到SQL Server Express 2016年澤西島的Webservice它sqljdbc42.jar是4.2驅動程序,在CLASSPATH
但是,如果我省略了Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
電話,我DriverManager.getConnection
拋出一個SQLException
(發現JDBC沒有合適的驅動程序:SQLSERVER://本地主機:1433; ......「)
的getConnection
開始一旦我添加了Class.forName
電話就成功了。
我在Java 8上。
我在想什麼?
更新:我剛試過一個命令行程序,它的工作原理沒有forName
。但是,在我的Eclipse IDE中,我正在將本地REST服務作爲本地主機上的Tomcat 8.0服務器運行,但它不起作用。
*「... sqljdbc42.jar這是4.0驅動程序」* [這裏證明](https://msdn.microsoft.com/en-us/library/ms378422(v = sql.110).aspx),對於任何其他懷疑論者。 :-)嗯,好吧,它不是4.0驅動程序,它是4.2驅動程序,但... –
@TJCrowder更新:-) – user93353
如果是這樣似乎微軟不喜歡遵循標準 –