在 Eclipse JDBC ODBC 中连接数据库时出错,

Posted

技术标签:

【中文标题】在 Eclipse JDBC ODBC 中连接数据库时出错,【英文标题】:Error to connect database in Eclipse JDBC ODBC, 【发布时间】:2015-10-16 12:28:19 【问题描述】:

我正在寻找解决 Eclipse 的问题,我正在尝试使用 java 1.7 通过 ODBC 连接到 mysql,以及 NetBeans 和 Eclipse 中的相同代码,

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:Gtable","root","");

在 NetBeans 中它工作正常,但在 Eclipse 中返回

Exception in thread "main" java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver
    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 testdb2.testd.main(testd.java:11)

我该如何解决?

我将它添加到构建路径

没用


我现在用这个,

 try 
              Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
              System.out.println("sun.jdbc.odbc.JdbcOdbcDriver found");
             catch (ClassNotFoundException cnfe) 
              System.out.println("Error: sun.jdbc.odbc.JdbcOdbcDriver not found");
            

它返回 jdbcodbc not found,我在哪里可以得到它?

【问题讨论】:

您已经为 UCanAccess JDBC 驱动程序添加了所需的库,但是您正在尝试使用 JDBC-ODBC 桥。它们是连接到 Access 数据库的两种完全不同的方式。如果您真的想使用 UCanAccess(根本不使用 ODBC),那么您的连接 URL 应该以 jdbc:ucanaccess:// 开头。 (另外,完全去掉Class.forName 语句;它不是必需的。) 我不能使用 ucanaccess,因为我必须使用 ODBC,这是我的任务,jdbc 驱动程序现在可以工作,但 JdbcOdbcDriver 不能。我不知道我在哪里可以得到这个罐子 运行应用程序时System.getProperty("java.version") 会返回什么? 嗯,很奇怪,但是返回 1.8 但我使用的是 1.7,现在我不知道如何更改它 在 Eclipse 中,右键单击 Package Explorer 中的项目并选择“Properties”。在“运行/调试”窗格中,编辑当前启动配置并转到“JRE”选项卡。在那里你可以选择另一个 JRE(如果有的话)。 【参考方案1】:

Eclipse 项目的问题在于它实际上是在 Java 8 下运行的,因此 JDBC-ODBC 桥不可用。更改运行配置以使用 Java 7 JRE 解决了该问题。

【讨论】:

【参考方案2】:

如果您想正确执行此操作,请将名为 lib 的文件夹添加到您当前的项目中。 下载驱动程序的 jar 并将此 jar 从文件资源管理器中拖到 eclipse 的 lib 文件夹中。 在此之后,右键单击您的项目文件夹-> java 构建路径,查找库选项卡并单击添加 jars。 浏览到 lib 文件夹中的 jar,然后单击 OK。在此之后再次单击确定。 这应该工作:)

试试这个:

Class.forName("com.mysql.jdbc.Driver");

如果这不起作用,您可能给出了错误的路径。 尝试在包资源管理器视图中搜索您引用的库。 只需展开 jar 并查找 driver.class。 如果这工作量很大,您可以尝试使用 shift + ctrl + r 进行搜索。 根据您的需要调整过滤器。 需要搜索driver.class的路径

我也建议你不要使用 root 并给它一个强密码

【讨论】:

我尝试这样做,我编辑了我的帖子,我粘贴了构建路径 Class.forName("com.mysql.jdbc.Driver");这现在有效,当我找到并添加 jdbc.jar 时。现在我很可能需要找到并下载 odbc.jar 搜索mysql jdbc驱动。如果你把这个 jar 添加到你的库中,这就足够了。 Class.forName("com.mysql.jdbc.Driver");现在可以工作了,但是这个: Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");还是不行,我在哪里可以得到这个罐子?【参考方案3】:

您应该打开项目属性 (alt+Enter),打开菜单“部署程序集”,然后设置库文件夹,其中有 jdbc 驱动程序。 像这样的东西:

【讨论】:

以上是关于在 Eclipse JDBC ODBC 中连接数据库时出错,的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse 中的 SQL 数据库连接失败

JAVA中如何通过JDBC-ODBC桥来连接SQLServer数据库

Java数据库连接——jdbc-odbc桥连接方式

jdbc与odbc的区别

Eclipse 数据源资源管理器和 MS-Access

JDBC-ODBC桥接器连接Access数据库