[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 メーリングリストの案内