私はSpring、MyBatis、およびMicrosoft SQL Serverを使用しています。私のプロジェクトでは、MyBatis マッパーxmlファイルからプロシージャを呼び出す必要があります。MyBatis:SQL Serverからストアドプロシージャをキャッチするメッセージをキャッチ
だから、私は次のようにそれをやった:
<select id="callProcedure" parameterType="TestBean" statementType="CALLABLE" >
{CALL callprocedure(#{id},#{regId})}
</select>
そして、これがうまく機能しています。それ
try {
myMapper.callProcedure(testBean);
} catch (Exception e) {
System.out.println(e.getMessage());
}
、主な問題:私は次のようにで私のDAOのJavaクラスを例外をキャッチし、
THROW 50002, "Invalid Parameters", 1;
そして:その後、私は以下のように私のストアドプロシージャ内THROW
文を追加しましたここにある。メッセージをプリントアウトすると、それは非常に多くの行と原因を示しました。私が投げるメッセージだけでなく、私は、私が投げたメッセージだけが欲しい。
私はe.getMessage()
を呼び出すことによって、手順からスローされたメッセージを取得できません。
これは、次のメッセージを表示:
org.springframework.jdbc.UncategorizedSQLException:
### Error querying database. Cause:com.microsoft.sqlserver.jdbc.SQLServerException: Invalid Parameters
### The error may exist in mybatis/mapper/application/test.xml
### The error may involve com.test.core.mapper.application.TestMapper.callProcedure-Inline
### The error occurred while setting parameters
### SQL: {CALL callprocedure(?,?)}
### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: Invalid Parameters; uncategorized SQLException for SQL []; SQL state [S0001]; error code [50002]; Invalid Parameters; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: Invalid Parameters
...
私は手続きからスローメッセージを取得するには、このとのトラブルです。これをどうすれば解決できますか?
他の方法で作業していますか?私を助けてください。
ありがとうございました。