[Seasar-user:1355] Re: S2Dao でエラー処理
Yasuo Higa
higa
2005年 4月 6日 (水) 01:08:32 JST
<20041214095008.10603.qmail @ web1703.mail.yahoo.co.jp> の、
"[Seasar-user:1353] S2Dao でエラー処理" において、
"須賀 祐一 <yu1_suga @ ybb.ne.jp>"さんは書きました:
ひがです。
> はじめまして、須賀といいます。
> 初心者ですがよろしくお願いします。
>
> 仕事で、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 <higa @ isid.co.jp>
INFORMATION SERVICES INTERNATIONAL-DENTSU,LTD.
Seasar-user メーリングリストの案内