在 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 中连接数据库时出错,的主要内容,如果未能解决你的问题,请参考以下文章