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 项目
MySQL Workbench 无法连接到我的 RDS 数据库:无法连接到 localhost