Spring JdbcTemplate,如何在 Spring config XML 文件中动态设置用户名和密码?

Posted

技术标签:

【中文标题】Spring JdbcTemplate,如何在 Spring config XML 文件中动态设置用户名和密码?【英文标题】:Spring JdbcTemplate , How to dynamically set username and password in Spring config XML file? 【发布时间】:2014-12-08 13:05:06 【问题描述】:

Spring JDBC:在使用 JdbcTemplate 时如何为每个用户设置用户名和密码?,目前我正在将数据源对象配置为 spring bean(Spring config.xml 文件)并能够使用单用户名和密码登录,还使用了属性相同的文件和占位符

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
    <property name="url" value="jdbc:mysql://localhost:3306/apu"></property>
    <property name="username" value="root"></property>
    <property name="password" value=""></property>
</bean>

为每个登录的用户设置用户名值和密码值的方法是什么? 这是我的第一个 Spring 应用程序,因此无法找到正确的方法..

【问题讨论】:

看看UserCredentialsDataSourceAdapter。但是请注意,这基本上会破坏使用连接池的能力,因为每个用户都需要自己的连接。确保这是您真正想要的(并且需要!)。 @M.Deinum :谢谢 Deinum,需要您的指导,使用 Spring jdbc 模板和 spring config.xml 文件我可以访问基于 DB2 的存储过程,提供我的用户名和密码,现在我想要让它访问多个用户?最好的方法是什么? 【参考方案1】:

通常,在 Web 应用程序中,每个用户不使用自己的身份访问数据库。常见的模式是应用程序只有一个数据库用户,并让应用程序管理自己用户的权限。

正如 M.Deinum 所说,这种模式允许应用程序使用连接池,其中数据库连接在不同的请求之间循环,从而大大降低了数据库负载(建立连接的成本很高)

如果您查看(几乎)所有的 Spring 示例教程,它们会始终使用该方法与单个数据库用户一起用于整个 Web 应用程序。

如果您确实需要每个用户使用其自己的数据库身份,您必须按照 M. Deinum 的建议使用 UserCredentialsDataSourceAdapter,没有数据库池。

【讨论】:

以上是关于Spring JdbcTemplate,如何在 Spring config XML 文件中动态设置用户名和密码?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Spring Framework 中的 JdbcTemplate 类执行 INSERT 语句

Spring中JdbcTemplate中使用RowMapper

Spring JdbcTemplate,如何在 Spring config XML 文件中动态设置用户名和密码?

spring boot+logback+JdbcTemplate打印sql日志

spring boot 与 JdbcTemplate 一起工作

如何使用Spring JdbcTemplate截断表?