如何从 Spring JdbcTemplate 连接到受密码保护的 MS Access 数据库?

Posted

技术标签:

【中文标题】如何从 Spring JdbcTemplate 连接到受密码保护的 MS Access 数据库?【英文标题】:How can you connect to a password protected MS Access Database from a Spring JdbcTemplate? 【发布时间】:2011-02-03 20:48:14 【问题描述】:

我需要使用 JDBC-ODBC 桥连接到受密码保护的 MS Access 2003 DB。我不知道如何在连接字符串中指定密码,或者即使那是正确的连接方法。

可能需要提及的是,这是一个 Spring 应用程序,它通过在我们的应用程序上下文文件中配置为数据源 bean 的 JdbcTemplate 访问数据库。

一些相关的sn-ps:

来自 application-context.xml

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="legacyDataSource" />
</bean>

<bean id="jobsheetLocation" class="java.lang.String">
    <constructor-arg value="$jobsheet.location"/>
</bean>

<bean id="legacyDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="$jdbc.legacy.driverClassName" />
    <property name="url" value="$jdbc.legacy.url"/>
    <property name="password" value="-------------" />
</bean>

来自我们的构建属性

jdbc.legacy.driverClassName=sun.jdbc.odbc.JdbcOdbcDriver
jdbc.legacy.url=jdbc:odbc:Driver\=Microsoft Access Driver (*.mdb);Dbq\=@LegacyDbPath@;DriverID\=22;READONLY\=true

有什么想法吗?

【问题讨论】:

【参考方案1】:

尝试使用

附加您的网址
 UID\=user;PWD\=pwd

【讨论】:

该答案适用于受 Jet 用户级安全性保护的数据库,但不适用于数据库密码。如果我没记错的话,Jet/ACE ODBC 驱动程序没有规定使用带有数据库密码的数据库——这仅适用于 OLEDB。

以上是关于如何从 Spring JdbcTemplate 连接到受密码保护的 MS Access 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 使用 JdbcTemplate 和多个数据源自动重新连接到 PostgreSQL

如何从 SQL 脚本、JDBC 或 Spring JdbcTemplate 在 MySQL 中创建函数?

如何使用 Spring JDBCTemplate 从唯一的约束冲突中恢复?

spring 如何获取 jdbctemplate

从 POST 方法中使用 JDBCTemplate 存储对象数组 - Spring Boot

Spring 从入门到精通系列 11—— Spring 中的 JdbcTemplate