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日志