在 Spring Boot 中使用 UCANACCESS
Posted
技术标签:
【中文标题】在 Spring Boot 中使用 UCANACCESS【英文标题】:Using UCANACCESS with Spring Boot 【发布时间】:2020-04-07 23:20:49 【问题描述】:我正在设置一个非常基本的 Spring-Boot 应用程序,以将一些 Access 数据库内容作为 REST 服务提供。
在将 ucanaccess jar 包含在我的类路径中进行了斗争之后,现在我无法让它连接到我的访问数据库。
我的 spring.datasource 是这样设置的:
spring.datasource.jdbc-url=jdbc:ucanaccess://C:\\Users\\Owner\\Documents\\brigette.accdb;showSchema=true;memory=false
spring.datasource.dialect=net.ucanaccess.hibernate.dialect.UCanAccessDialect
我得到的错误是:
2020-04-08 09:01:28.534 INFO 20740 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2020-04-08 09:01:28.557 WARN 20740 --- [ main] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain connection to query metadata : Failed to get driver instance for jdbcUrl=jdbc:ucanaccess://C:\Users\Owner\Documents\brigette.accdb;showSchema=true;memory=false
2020-04-08 09:01:28.563 WARN 20740 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [agency/newmeta/jsis/BackendDbConfig.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
2020-04-08 09:01:28.568 INFO 20740 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
访问数据库确实存在于该位置,但如果我使用不存在的数据库,我确实会收到相同的错误。
HHH000342: Could not obtain connection to query metadata : Failed to get driver instance for jdbcUrl=jdbc:ucanaccess://C:\Users\Owner\Documents\lalala.accdb;showSchema=true;memory=false
如果我使用 / 而不是分隔:
HHH000342: Could not obtain connection to query metadata : Failed to get driver instance for jdbcUrl=jdbc:ucanaccess://C:/Users/Owner/Documents/brigette.accdb;showSchema=true;memory=false
关于设置连接字符串我缺少什么?
TIA 布里吉特
【问题讨论】:
您可能会发现this blog post 很有帮助。 谢谢@GordThompson,这非常有帮助。概念证明现在正在工作。 【参考方案1】:我建议您使用另一种方法:将 spring jpa 与 hibernate 一起使用。 并按照文章: Accessing MS Access with Hibernate 5 and Spring Boot
最终,它将指导您实现一个小应用程序来读取和更新 accdb 数据库。
需要指出的重要一点是源代码中包含的“补丁”必须在您的代码中使用(没有它,您的应用将永远无法运行)。 “补丁”就是hibernate方言:很重要,在文章源码中有报道,文末分享。
【讨论】:
以上是关于在 Spring Boot 中使用 UCANACCESS的主要内容,如果未能解决你的问题,请参考以下文章
在 spring-boot 项目中使用 spring mvc xml 项目
Spring boot在Spring boot中Redis的使用
如何在 spring-boot 中禁用 spring-data-mongodb 自动配置
如何在 Spring Boot 中使用 @Transactional 注解