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 に答える