Java 无法连接到我的数据库

Posted

技术标签:

【中文标题】Java 无法连接到我的数据库【英文标题】:Java won't connect to my database 【发布时间】:2013-04-13 06:39:38 【问题描述】:

这是我的代码:

import java.sql.*;

public class DBConnector 
private static Connection conn;

public static void connectToDB()

//load the driver
try

Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println ("Driver successfully loaded");

catch (ClassNotFoundException c)

System.out.println ("Unable to load database driver");


//connect to the database
try

String filename = "TopYouTubeVideos.mdb"; 
String database = "jdbc:odbc:Driver=Microsoft Access Driver (*.mdb);DBQ=";
database += filename.trim () + ";DriverID=22;READONLY=true";
conn = DriverManager.getConnection (database, "", "");
System.out.println ("Connection database successfully established");

catch (Exception e)

System.out.println ("Unable to connect to the database");



输出是:

驱动加载成功

无法连接到数据库

这在与我不同的计算机上运行,​​通过完全相同的代码连接到数据库...有人知道为什么吗?

提前致谢:)

编辑:我正在运行 Access 2007、Windows 7 64 位 通过检查错误,我得到: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

通过一些研究,这似乎是我的“数据源名称”的问题。我把我的数据库文件放在项目文件夹中,名字是正确的。为什么找不到呢?

编辑:不,两台计算机上的数据库相同。也在同一个文件夹中。

编辑:我想我可能需要创建一个系统 dsm。按照互联网上的说明进行操作,因为我没有与他们相同的文件..

编辑:我已经尝试安装它,但没有任何区别。我的访问版本与我的 netbeans 版本一样是 64 位的。

【问题讨论】:

你的电脑操作系统是不是windows? 你必须打印异常堆栈跟踪而不是仅仅打印一条短信,试试e.printStackTrace()看看发生了什么...... 你在两台电脑上使用不同的数据库系统吗? DriverManager.getConnection() 的字符串并不总是相同,具体取决于数据库系统。 【参考方案1】:

尝试安装运行在相同架构(即 32 位)中的数据库引擎 + JVM,否则会收到不匹配异常。我假设您的 JVM 是 64 位,但您的数据库引擎不是,因此请尝试从以下链接安装 64 位引擎: http://www.microsoft.com/en-us/download/details.aspx?id=13255

【讨论】:

以上是关于Java 无法连接到我的数据库的主要内容,如果未能解决你的问题,请参考以下文章

JDBC 无法从单独的类连接到我的数据库。 DB 类创建连接

使用 Windows 身份验证将我的 Sql Server 2008 数据库连接到我的 Java 项目

无法连接到 heroku PostgreSQL 数据库

MySQL Workbench 无法连接到我的 RDS 数据库:无法连接到 localhost

无法连接到我的 AWS 数据库实例 | psql:无法连接到服务器:操作超时

我无法连接到 MySQL 数据库 [重复]