从Java连接到MS Access数据库(CDCollection.accdb)时遇到错误。我们使用的IDE是Netbeans。我已就可能的错误解决方案进行了研究,但由于对该主题缺乏经验,我不太清楚如何解决它。我班上的其他人都有同样的问题,老师也不知道如何解决这个问题。
我的课程现在在最后一章,学习单元10:从Java程序访问数据库,Funworks正在探索IT:Java编程。 11年级。
我会发布链接到我发现最有用的三个来源,但Stack Overflow说我需要有10个声望点来发布超过2个链接。我搜索了Stack Overflow和web找到这个错误的解决方案,但那些比我现在的更先进。
编辑:以下是链接,感谢那些赞美我的人。他们建议的解决方案是有道理的,但似乎不起作用......
http://www.coderanch.com/t/440574/JDBC/databases/java-sql-SQLException-ODBC-Driver
http://www.codeproject.com/Articles/35018/Access-MS-Access-Databases-from-Java
根据我的理解,这是由于学校的计算机和我的笔记本电脑都是64位而ODBC(开放数据库连接)是32位。我的老师不知道如何解决这个问题,因为这是她第一次遇到这个问题。当去年的11年级到达本书的这一部分时,学校的计算机仍然是32位。
根据我的阅读,我需要转到 OBDC数据源管理员,然后在系统DSN 标签下添加“Microsoft Access驱动程序(*) .mdb,* .accdb)“。我注意到它已经存在于用户DSN 标签下。 在 C:\ Windows \ SysWOW64 \ odbcad32.exe 或控制面板\系统和安全\管理工具\数据源(ODBC)中找到 OBDC数据源管理员 。第一个是可取的,因为它似乎有更多的驱动程序可用,即使控制面板快捷方式针对相同的可执行文件。
但是,添加驱动程序后仍然会出现相同的错误。
这是我的代码:
数据库类
package cd;
import java.sql.*;
public class DB
{
private static final String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
private static final String url = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ={CDCollection.accdb}";
private Connection connection;
private PreparedStatement statement;
private ResultSet resultSet;
public DB()
{
try
{
Class.forName(driver);
System.out.println("Driver successfully loaded");
}
catch (ClassNotFoundException c)
{
System.out.println("Unable to load driver");
System.out.println(c);
}
try
{
connection = DriverManager.getConnection(url);
System.out.println("Connection successful");
}
catch (SQLException e)
{
System.out.println("Unable to connect");
System.out.println(e);
}
}
}
和UseDB类:
package cd;
import java.sql.*;
public class UseDB
{
static DB db = new DB();
public static void main(String[] args)
{
}
}
对于
DBQ={CDCollection.accdb}
我已经尝试了文件的完整路径( C:\ Users \\ Documents \ IT \ Java \ Databases \ CD \ CDCollection.accdb ),因为第一个标记使用了双反斜杠逃避角色。我也尝试使用正斜杠(/),我尝试了没有路径,因为它在代码中,并将数据库放在 \ CD (项目文件夹)中, \ CD \ src (源文件夹), \ CD \ src \ cd (包文件夹)。
然而,尽管如此,我和我的同学每次运行程序时仍会得到相同的输出:
run:
Driver successfully loaded
Unable to connect
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
BUILD SUCCESSFUL (total time: 0 seconds)
我可以帮忙吗?请记住,我的课程今天刚刚开始这个模块;我们只做了1个月的Access和SQL,并且已经做了一年半的Java。
谢谢!
答案 0 :(得分:0)
我建议您在ODBC配置面板中添加SYSTEM DATASOURCE。我们假设您将其命名为cdcollection
。那么您的url
变量只需要:
private static final String url = "jdbc:odbc:cdcollection";
Here's a a nice STEP BY STEP article关于如何做到这一点。
欢迎使用StackOverflow。