Java SQL JDBC 错误 - 找不到合适的驱动程序错误

Posted

技术标签:

【中文标题】Java SQL JDBC 错误 - 找不到合适的驱动程序错误【英文标题】:Java SQL JDBC Error - No suitable driver found error 【发布时间】:2013-09-01 18:02:29 【问题描述】:

我试图了解 Java 以及它如何与 JDBC 一起工作,因此我在我的域控制器上设置了 SQL 2012 Express 服务器。

我已经使用另一个 SQL 2012 实例通过域计算机成功连接到它,但是当使用 Java 拉下一个简单的查询时,我得到一个“未找到合适的驱动程序”错误,即使我正在使用并已导入SQL4 .JAR 扩展名。

这是我的代码:

我收到此错误是否有原因?

堆栈跟踪:

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at components.brkview.Doconnect(brkview.java:80)
at components.brkview$doevent.actionPerformed(brkview.java:137)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

【问题讨论】:

下次发布真实代码(不是图片)和完整的堆栈跟踪! @bellabax,同意,但你真的需要因此而否决吗?现在支持,因为堆栈跟踪在那里。 【参考方案1】:

您必须在使用Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 作为第一条指令进行连接之前加载驱动程序。 连接字符串也是错误的(就像 PostgreSQL 一样):here 如何构建更正的连接字符串。 应该是这样的

jdbc:sqlserver://brk:1433;databaseName=Accounts_Table;

【讨论】:

谢谢,但我在初始化时遇到了一堆类加载器(未知来源)错误,即使我在 try/catch 语句中将其包围以捕获异常。想法? 带有驱动程序的jar不在类路径中或sql4.jar(名称通常是sqljdbcX.jar,其中X是jdbc版本)不是正确的版本。从here 下载驱动并放入你的类路径 这有效,但现在我得到“找不到与提供的名称匹配的登录名”,即使 Management Studio 中“权限”下的登录名存在并且已被授予所有权限。想法? 这与问题无关:从***.com/questions/7119602/…或here开始 请接受回答它关闭问题

以上是关于Java SQL JDBC 错误 - 找不到合适的驱动程序错误的主要内容,如果未能解决你的问题,请参考以下文章

java.sql.SQLException: 找不到适合 jdbc:sqlserver 的驱动程序... (intellij, maven)

Xampp 服务器上的 Java 小程序 - 在 jdbc:mysql://localhost:3306/ 上找不到合适的驱动程序

JDBC找不到合适的驱动程序,无法获取驱动程序[重复]

使用 JDBC 连接到 Athena 时找不到合适的驱动程序

找不到适合 jdbc mysql 的驱动程序?

如何修复:“找不到适合 jdbc:mysql://localhost/dbname 的驱动程序”错误