使用DriverManagerDataSource bean设置noAccessToProcedureBodies

时间:2012-11-09 08:27:02

标签: mysql spring java-ee jdbc jdbctemplate

大家好,所有Java Geeks,

我在MySQL数据库中有很多存储过程,我可以从.NET成功调用它。但是,当从Java Spring SimpleJdbcCall.execute()调用它时,我得到一个异常,告诉我用户没有权限这样做。但事实显然并非如此,因为同一个用户可以从CLI和.NET访问它。

我想设置此参数:

noAccessToProcedureBodies=true

但是,在我的url中添加下面的连接器bean中的参数时,它认为尾随字符是数据库名称的一部分。

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

全部谢谢

1 个答案:

答案 0 :(得分:0)

我自己找到了答案,而且它正在发挥作用。

不应该有一个结尾斜杠"database/?noAccess...",而应该留下它:

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

希望能帮助别人!