1

大家好,Java 极客们,

我在 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方法,但我认为这不是正确的方法吗?

谢谢大家

4

1 回答 1

0

我自己找到了答案,它正在工作。

而不是有一个结束斜线"database/?noAccess..."一个应该离开它:

<property name="url">
        <value>jdbc:mysql://192.168.0.1:3306/database?noAccessToProcedureBodies=true</value>
</property> 

希望对某人有所帮助!

于 2012-11-12T06:19:14.470 回答