大家好,Java Geeks,
我在 MySQL 数据库中有很多存储过程,我可以从 .NET 中成功调用它们。但是,当从 Java Spring SimpleJdbcCall.execute()
调用它们时,出现异常,告诉我用户没有这样做的权限。但这显然不是这种情况,因为同一用户可以从 CLI 和 .NET 访问它。
因此我想设置这个参数:
noAccessToProcedureBodies=true
但是,当在下面的连接器 bean 的 url 中添加参数时,它认为尾随字符是数据库名称的一部分。
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="username">
<value>user</value>
</property>
<property name="url">
<value>jdbc:mysql://192.168.0.1:3306/database/?noAccessToProcedureBodies=true</value>
</property>
<property name="password">
<value>powerpass</value>
</property>
</bean>
我一直在考虑覆盖 getConnectionProperties
方法,但我认为这不是正确的方法?
谢谢大家
最佳答案
我自己找到了答案,而且很有效。
与其使用结尾斜杠 "database/?noAccess..."
,不如保留它:
<property name="url">
<value>jdbc:mysql://192.168.0.1:3306/database?noAccessToProcedureBodies=true</value>
</property>
希望对某人有所帮助!
关于mysql - 使用 DriverManagerDataSource bean 设置 noAccessToProcedureBodies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13304526/