[Seasar-user:1355] Re: S2Dao でエラー処理
Yasuo Higa
higa
2004年 12月 14日 (火) 19:34:23 JST
<[E-MAIL ADDRESS DELETED]> の、
"[Seasar-user:1353] S2Dao でエラー処理" において、
"須賀 祐一 <[E-MAIL ADDRESS DELETED]>"さんは書きました:
ひがです。
> はじめまして、須賀といいます。
> 初心者ですがよろしくお願いします。
>
> 仕事で、S2Daoを使わさせてもらっています。
>
> [質問1]
> データベース固有のエラーを取得して処理を分岐させようと考えています。
> エラーコードは以下のようにして取得したのですが、この方法でよいのでしょうか?
>
> ・・・・
> int rc = dao.insert(user);
> } catch (SQLRuntimeException e){
> Object[] obj = e.getArgs();
> SQLException e2 = (SQLException)obj[0];
> if(e2.getErrorCode() == 1){
> // 一意制約に反しています
> // 更新します。
> System.out.println("★
> 既にデータが登録されているのでUPDATEします");
> int rc = dao.update(user);
> } else {
> ・・・・
>
エラーコードの取得はその方法で大丈夫です。
例外の処理の仕方は、ThrowsInterceptorが使えないか検討して
みる価値はあると思います。
http://homepage3.nifty.com/seasar/aop.html#TraceInterceptorSample
> [質問2]
> 部署ごとに使用するデータベースサーバの種類が違う為、
> データベースによってエラーの処理を変えたいと考えているのですが、
> データベースの名称を取得する方法は無いのでしょうか?
>
org.seasar.dao.dbms.DbmsManagerが使えるかもしれません。
---
Yasuo Higa <[E-MAIL ADDRESS DELETED]>
INFORMATION SERVICES INTERNATIONAL-DENTSU,LTD.
Seasar-user メーリングリストの案内