Java未使用Eclipse连接到MS Access数据库
有人能帮我吗?我已经试着解决这个问题一个小时了,但我仍然感到困惑。 下面是我的代码,我在编译时遇到了这个错误 输出消息::Java未使用Eclipse连接到MS Access数据库,java,ms-access,jdbc,Java,Ms Access,Jdbc,有人能帮我吗?我已经试着解决这个问题一个小时了,但我仍然感到困惑。 下面是我的代码,我在编译时遇到了这个错误 输出消息:: DriverLoaded Could Not Connect to Databasejava.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified at sun.jdbc.odbc.JdbcOdbc.c
DriverLoaded
Could Not Connect to Databasejava.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at DBConnect.<init>(DBConnect.java:11)
at DBConnect.main(DBConnect.java:21)
getConnection()的重载方法
(一)
getConnection(字符串url、属性信息)
网址-
形式为jdbc:subtocol:subname的数据库url
信息-
作为连接参数的任意字符串标记/值对的列表;
通常至少应包括“用户”和“密码”属性
(二)
getConnection(字符串url、字符串用户、字符串密码)
url-数据库url的形式为jdbc:subtocol:subname
用户-
正在代表其进行连接的数据库用户
密码-
用户的密码
3) getConnection(字符串url)
url-
形式为jdbc:subtocol:subname的数据库url
考虑到您使用的是最后一个构造函数,您的url语法似乎不正确。我不熟悉MS Access,但我会提供一个在另一个答案中找到的建议
这是您的语法
"jdbc:odbc:; DRIVER = Microsoft Access Driver (*.mdb, *.accdb); DBQ = DB.accdb"
我发现一个正确的语法是
File f = new File("\\\\***\\***\\****\\***.accdb");
"jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + f.getAbsolutePath();
看起来odbc后面有一个不必要的分号和一个额外的空格。也许你想试试上面的语法,看看会发生什么。我不确定文件部分,但如果在进行分号/空格修复后url仍然失败,您可能需要查看它
还可以查看此问题,以了解有关另一个选项的更多信息。getConnection()的重载方法。
(一)
getConnection(字符串url、属性信息)
网址-
形式为jdbc:subtocol:subname的数据库url
信息-
作为连接参数的任意字符串标记/值对的列表;
通常至少应包括“用户”和“密码”属性
(二)
getConnection(字符串url、字符串用户、字符串密码)
url-数据库url的形式为jdbc:subtocol:subname
用户-
正在代表其进行连接的数据库用户
密码-
用户的密码
3) getConnection(字符串url)
url-
形式为jdbc:subtocol:subname的数据库url
考虑到您使用的是最后一个构造函数,您的url语法似乎不正确。我不熟悉MS Access,但我会提供一个在另一个答案中找到的建议
这是您的语法
"jdbc:odbc:; DRIVER = Microsoft Access Driver (*.mdb, *.accdb); DBQ = DB.accdb"
我发现一个正确的语法是
File f = new File("\\\\***\\***\\****\\***.accdb");
"jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=" + f.getAbsolutePath();
看起来odbc后面有一个不必要的分号和一个额外的空格。也许你想试试上面的语法,看看会发生什么。我不确定文件部分,但如果在进行分号/空格修复后url仍然失败,您可能需要查看它
还可以查看此问题以了解有关其他选项的更多信息下面是解决问题的工作代码
import java.sql.*;
public class DBConnect {
public DBConnect() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("DriverLoaded");
String url = "jdbc:odbc:instance";
Connection con = DriverManager.getConnection(url);
System.out.println("Connection Established Successfully");
} catch(Exception e) {
e.printStackTrace();
System.out.println("Could Not Connect to Database");
}
}
public static void main (String args[]) {
DBConnect dbcon = new DBConnect();
}
}
应遵循的步骤:
在windows xp系统的任何目录中创建access数据库DB.accdb
打开开始>控制面板>性能和维护>管理工具>数据源(ODBC)>单击系统DSN选项卡>单击添加>选择Microsoft Access驱动程序(accdb,mdb)>指定名称:instance,(因为,getConnection(“jdbc:ODBC:instance”)并单击并浏览硬盘中的DB.accdb)按ok并重新启动命令提示符。然后再次运行代码
在eclipse中运行相同的代码
创建一个java项目
添加一个主类并编辑该主类的源。只需复制和粘贴关于代码
通过从jdk/bin目录添加jar文件来创建用户库
通过链接userlibrary将生成路径链接到项目
运行项目
下面是您的问题的工作代码
import java.sql.*;
public class DBConnect {
public DBConnect() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("DriverLoaded");
String url = "jdbc:odbc:instance";
Connection con = DriverManager.getConnection(url);
System.out.println("Connection Established Successfully");
} catch(Exception e) {
e.printStackTrace();
System.out.println("Could Not Connect to Database");
}
}
public static void main (String args[]) {
DBConnect dbcon = new DBConnect();
}
}
应遵循的步骤:
在windows xp系统的任何目录中创建access数据库DB.accdb
打开开始>控制面板>性能和维护>管理工具>数据源(ODBC)>单击系统DSN选项卡>单击添加>选择Microsoft Access驱动程序(accdb,mdb)>指定名称:instance,(因为,getConnection(“jdbc:ODBC:instance”)并单击并浏览硬盘中的DB.accdb)按ok并重新启动命令提示符。然后再次运行代码
在eclipse中运行相同的代码
创建一个java项目
添加一个主类并编辑该主类的源。只需复制和粘贴关于代码
通过从jdk/bin目录添加jar文件来创建用户库
通过链接userlibrary将生成路径链接到项目
运行项目