当前位置: 首页 > 面试题库 >

在不使用ODBC的情况下从Java操作Access数据库?

董俊晖
2023-03-14
问题内容

我想从我的Java项目中操作Microsoft Access数据库(.accdb或.mdb文件)。我不想使用Microsoft的JDBC-ODBC Bridge和Access ODBC驱动程序,因为:

  • JDBC-ODBC Bridge已从Java SE 8中删除,并且不受支持(参考:here),
    当文本包含代码点在U + 00FF以上的Unicode字符时,JDBC-ODBC Bridge不能与Access ODBC驱动程序一起正常使用(参考:here),因此这样的设置将无法处理希腊语,俄语,中文等字符,阿拉伯语等,
  • Microsoft的Access ODBC驱动程序仅适用于Windows,并且
    Access数据库引擎(和ODBC驱动程序)有单独的32位和64位版本,可能会对部署造成麻烦。
    我看到了其他答案,其中提到了名为UCanAccess的Access数据库的JDBC驱动程序。如何设置Java项目以使用这种方法?

(回答建议最好的方法是使用Java处理Access数据库也将受到欢迎。)


问题答案:

UCanAccess是一个纯Java JDBC驱动程序,它使我们无需使用ODBC即可读写Access数据库。它使用其他两个软件包Jackcess和HSQLDB来执行这些任务。以下是有关如何进行设置的简要概述。

选项1:使用Maven

如果你的项目使用Maven,则可以通过以下坐标简单地包含UCanAccess:

以下是摘录pom.xml,你可能需要更新<version>以获得最新版本:

<dependencies>
  <dependency>
      <groupId>net.sf.ucanaccess</groupId>
      <artifactId>ucanaccess</artifactId>
      <version>4.0.4</version>
  </dependency>
</dependencies>

选项2:将JAR手动添加到你的项目中

如上所述,UCanAccess需要Jackcess和HSQLDB。反过来,Jackcess也有其自己的依赖性。因此,要使用UCanAccess,你将需要包括以下组件:

UCanAccess(ucanaccess-xxxjar)
HSQLDB(hsqldb.jar,2.2.5或更高版本)
Jackcess(jackcess-2.xxjar)
commons-lang(commons-lang-2.6.jar或更高版本2.x版本)
commons-logging( commons-logging-1.1.1.jar或更高版本1.x)

幸运的是,UCanAccess在其分发文件中包含了所有必需的JAR文件。解压缩后,你会看到类似

ucanaccess-4.0.1.jar  
  /lib/
    commons-lang-2.6.jar  
    commons-logging-1.1.1.jar  
    hsqldb.jar  
    jackcess-2.1.6.jar

你需要做的就是将所有五(5)个 JAR添加到你的项目中。



 类似资料:
  • null 我看到过其他答案,提到了一个名为UCANAccess的Access数据库的JDBC驱动程序。如何设置Java项目以使用这种方法? (建议从Java使用Access数据库的更好方法的答案也是最受欢迎的。)

  • 本文向大家介绍go语言通过odbc操作Access数据库的方法,包括了go语言通过odbc操作Access数据库的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了go语言通过odbc操作Access数据库的方法。分享给大家供大家参考。具体如下: 这里需要用到go-odbc库,下载地址为:https://github.com/weigj/go-odbc 希望本文所述对大家的Go语言程序设

  • 问题内容: 我正在尝试不使用AJAX将数据发布到REST api。我想以JSON格式发送数据。我有以下代码,但一直试图找出如何转换输入字段并将其发布到服务器。这是我的代码尝试: 问题答案: 您可以使用json值添加一个隐藏的输入字段,如下所示- 您可以使用参数( 隐藏输入的名称 )访问json

  • 本文向大家介绍VB使用ADO操作Access数据库,包括了VB使用ADO操作Access数据库的使用技巧和注意事项,需要的朋友参考一下 这里只是个简单不能再简单的VB小程序实例,但它包含这几个关键字:VB6.0、ADO、Access 环境:visual basic 6.0 企业版(非精简版,不然会缺少必须的控件) 数据库:Access数据库,数据库是xs.mbd,内建表为xj 结果:vb使用ADO

  • 问题内容: 有没有办法在不使用Java代码的情况下在H2中编写函数?我的要求是在不使用Java代码的情况下将用SQL编写的函数转换为H2。我在不同的门户网站中找到了许多使用Java代码执行相同操作的示例。对你的帮助表示感谢。 问题答案: 当前,H2仅支持以Java或相关语言(例如Groovy或Scala)编写的功能。不支持PL / SQL(Oracle) 和T-SQL(MS SQL Server,

  • 我想为android构建一个计算器应用程序,为此我需要一个解析器来转换要求解的字符串表达式。现在Java和Kotlin不支持eval函数,仅仅为了一个操作而导入javascript引擎可能会让我面临各种漏洞。所以我做了自己的计算器解析器。现在它工作得很好,除了crash中的负数外,所有算术运算都工作得很好。我确实知道问题是什么,因为我使用数学符号分隔字符串,但我不能在负值中执行任何操作。 输入:-