2016-12-25 4 views
1

jdbcテンプレートは、ストアドプロシージャを呼び出している間、データベースを渡すことはありません。 私たちの分析では、spring jdbcの実装では、メタデータからプロシージャのパラメータを特定していません。 。procを呼び出すための標準コードを使用しています。私たちは、私もここにハナパラメータ化されたストアドプロシージャは、単純なjdbcテンプレートを発行

simpleJdbcCall = new SimpleJdbcCall(datasource).withSchemaName(getSchemaString()) 
     .withProcedureName(name); 
    SqlParameterSource in = new MapSqlParameterSource().addValues(params); 

    results = simpleJdbcCall.execute(in); 

paramerter明示的に設定しようとしたネットを検索しようとしたが、満足のいく解決策を見つける coudnt

simpleJdbcCall = new SimpleJdbcCall(datasource).withSchemaName(getSchemaString()) 
         .withProcedureName(name); 
       results = simpleJdbcCall.execute(params); 

はハッシュマップですparamsは。 はまだ問題は、(強調は私です)javadocから

+0

使用する必要があります。 – Vish

+0

私はそれを持っていると思う..あなたは答えで同じを追加してください – Vish

答えて

1

同じまま:

メタデータ処理は、JDBCドライバによって提供されるのDatabaseMetaDataに基づいています。 JDBCドライバに依存しているので、この「自動検出」は、正確なメタデータを提供することが知られているデータベースに対してのみ使用できます。現在、Derby、MySQL、Microsoft SQL Server、Oracle、DB2、Sybase、PostgreSQLなどがあります。 他のデータベースの場合は、すべてのパラメータを明示的に宣言する必要があります。私が言う

は、あなたは私が明示的にポストearlier.updated質問に追加too.missed追加のparamsを試してみましたSimpleJdbcCall#declareParameters(SqlParameter...)

+0

助けてくれてありがとう – Vish

+0

うれしい;-) –

関連する問題