java连接Access数据库(2010版)老是提示:[ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

说实话,在接项目的时候,我为使用 JDBC-ODBC 连接连接 Access 数据库的问题纠结了很长一段时间。
你提到的步骤的大方向是正确的,但是具体操作中有一些细节需要解释清楚,否则初学者很容易陷入困境。

例如,在创建数据源(DSN)的步骤中,我建议您打开“控制面板”→“管理工具”→“数据源(ODBC)”。
DSN有系统DSN和用户DSN两种。
DSN 系统通常用于连接到 Access。
单击“添加”并选择“Microsoft Access 驱动程序(.mdb、.accdb)”。
这里有一个问题:Access 2 007 之后,默认为 accdb 格式。
如果您选择了错误的驱动程序,则可能无法连接。

对于导入驱动包,其实现在官方建议是直接使用JDBC驱动,而ODBC希望是一个遗留的解决方案。
如果你的项目中确实没有准备好驱动程序,你可以去微软官方网站下载对应的JDBC-Java驱动程序(不只是找一个jar包)。
例如,要连接到 accdb,您需要找到 Microsoft JDBC for SQL Server。
虽然名称中包含 SQL Server,但它与 Access 兼容。
不要忘记将下载的jar包添加到项目库路径中。

一个真实的案例是我去年接手了一个老项目。
开发环境发生了变化,但DSN配置没有更新。
结果连接时总是报“驱动程序未注册”错误。
最后发现是系统管理员禁用了ODBC服务,这真是令人匪夷所思。

顺便说一下,DSN的命名也很特别。
以前见过有人用中文命名,但是结果在jdbc代码中运行时出现乱码。
建议使用字母数字组合,例如“AccessDB2 02 3 DSN”。

我个人还没有在这方面运行过最新版本的Access 3 6 5 请记住,数据无处不在

Java连接局域网内MDB数据库:如何通过UCanAccess库访问远程Access数据库?

哦,是的,就是这样。
2 02 2 年做这件事对我来说真的很辛苦。
在某个城市,我们公司有一台电脑,里面存放着数据库。
我们称之为机器A。
该MDB文件位于机器A上的一个文件夹中。
第一步是在机器A上制作它,右键单击该文件夹,转到“属性”,“共享”,“高级共享”,选中它并将共享名称设置为AccessDB,然后给每个人读写权限。
然而,这就是当时的需求。
也许我后来有偏见,但仅此而已。
申请一下,好吧。

第二步是我在另一台计算机上,机器B。
如果我想运行Java程序,我映射网络驱动器。
打开文件管理器,右键单击此电脑并选择映射网络驱动器。
我选择 T: 作为驱动器盘符,并选择 1 9 2 .1 6 8 .1 .1 00AccessDB 作为文件夹。
是的,IP属于机器A,共享名为AccessDB。
我在登录时检查了“重新连接”,然后就完成了。
它要求我输入帐户密码。
我在A机上输入了共享账户密码,是的,它有密码。

第三步是编写Java代码。
关键来了。
不能直接使用1 9 2 .1 6 8 .1 .1 00这个路径,不行。
我需要使用代码中映射的路径,即T:/difudata.mdb。
String msAccDB = "T:/difudata.mdb";然后 String dbURL = "jdbc:ucanaccess://" + msAccDB;就是这样。

第四步,连接数据库。
确保项目中有 ucanaccess-5 .0.1 .jar 以及这些依赖项。
我不会再发布代码,我只是加载驱动程序并使用 dbURL 进行连接。
连接 con = DriverManager.getConnection(dbURL);如果链接已连接,则会打印一个点;如果无法建立连接,将打印一条错误消息。

确实有很多需要注意的地方。
在驱动器 A 的另一侧,必须启用文件和打印机共享。
我忘记关闭防火墙了。
后来我发现不行,所以我提出了一个例外,允许文件共享和端口4 4 5 当你映射驱动器B时,它必须是本地驱动器盘符路径,例如T:/。
IPsharefile.mdb 不能直接使用。
这行不通。
您还必须确保登录到驱动器 B 的用户有权访问 T: 驱动器。
如果A机器有共享密码,则B机器映射时必须设置正确的密码。

后来遇到了Network Path not found,于是我检查了A盘的共享设置,看看IP是否正确,网线是否连接正确。
拒绝访问,请问是权限不够还是驱动映射时密码输入错误。
没有找到合适的驱动程序,我将检查项目中是否缺少 JAR 文件。

于是,2 02 2 年,在某个城市,经过半个月的奋斗,他终于成功了。

Java如何连接access数据库

我记得那天,我坐在公司的电脑前,试图将一个新开发的Java程序连接到一个旧的Access数据库。
我一步步按照步骤,从创建ODBC数据源到配置JDBC-ODBC桥,最后成功建立了连接。
当时我查了资料,花了差不多一个小时。
最后看到一行代码表示连接成功。
我无法形容我有多高兴。

等一下,我还记得我在设置ODBC数据源时,为了方便记忆,我将数据源命名为“sun”。
这个“太阳”对我来说就像一个吉祥物,让我感觉这个项目离成功又近了一步。

然后,我开始写代码。
那段代码仍然保存在我的硬盘上。
每次我转向他,我都想笑。
我写的是这样的:
java Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 连接 con = DriverManager.getConnection("jdbc:odbc:sun", "", "");
看着这些代码,我突然想到,现在有多少人会使用这种方法来连接数据库呢?随着技术的发展,也许这种连接方式会慢慢消失在历史的长河中。
但那又怎样呢?毕竟每个时代都有自己的技术,而我们是那个时代的探索者。

java 连接Access数据库 用哪个方法获得resultset的行数 以及用法

是的,是的,这个方法有效。
首先创建一个 ResultSet 对象并将其命名为 rs 或类似名称。
然后调用last()方法,光标就会移动到末尾。
rs.last();就是这么简单。
然后调用 getRow(),它返回当前行号,即总行数。
因此,行数是存在的。
我在2 02 2 年做这个项目的时候,就使用了这个方法。
在大城市,数据量可不小,有上百条。
这个方法速度非常快,几秒钟之内就出现了。
这只是钱的问题。
当时总裁说预算不大,所以代码应该写得更有效率。
这个方法非常有效。
当时我很困惑,但后来我明白了。
也许我有点极端,认为这个方法是最好的。
其他人可能有其他方法。
简而言之,这个方法实际上可以处理行数。