[Seasar-user:17841] Re: S2DAO からの DataSet 取得について

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2009年 6月 24日 (水) 11:41:56 JST


中村(taedium)です。

> ちなみに、「DataSet」を「List<ExcelList>」にした場合、
> 正しく動作し、結果が取得できました。
> 
> 
> DataSet が取得できれば、Excel出力が簡単だと思ったのですが、
> やはり出来ないのでしょうか?

Daoから直接DataSetを取得することはできません。
いったんBeanで取得した後、それをDataSetに変換するという
手順をとるのがいいと思います。

BeanをDataSetに変換する汎用的なクラスはありませんが、
S2Daoに含まれる以下のクラスを参考にすれば
比較的簡単に作ることができます。

  org.seasar.dao.unit.S2DaoBeanReader
  org.seasar.dao.unit.S2DaoBeanListReader

これらのクラスは、DataTableのテーブル名に適当な
名前を入れるので、そこを適切な名前が入るように修正すると
いいでしょう。

これらのクラスで使用している
org.seasar.dao.BeanMetaDataFactoryの実装クラスは
S2Daoを使用している環境であれば
コンテナからクラスをキーにして取得できます。

> 
> 李様
> 
> いまいち解っていないのですが、SQLファイルの末尾を「_oracle.sql」に変更するという事で宜しいの
> でしょうか?
> 
> 試してみましたが、取得する事が出来ませんでした。
> (バージョンが古いせいでしょうか?)
> 
> 
> わからなので、現在のコードとエラー内容を記載いたします。
> -------- ここからソースコード ---------
> ********* ExcelDao.java ***********
> public interface ExcelDao{
> 
> public static final Class BEAN = ExcelList.class;
> 
> public DataSet selectExcelListData();
> 
> }
> 
> ********* ExcelDao_selectExcelListData_oracle.sql ***********
> select a -- char型
>       ,b -- char型
>       ,c -- char型
>   from Z
> ;
> 
> ******** ExcelList.java ***********
> public class ExcelList implements Serializable {
> 
> public static final String TABLE = "Z";
> 
> public static final String a_COLUMN = "a"; 
> public static final String b_COLUMN = "b"; 
> public static final String c_COLUMN = "c"; 
> 
> private String a;
> private String b;
> private String c;
> 
> getter/setter
> 
> }
> -------- ここまでソースコード ---------
> 
> 上記内容で行うとかきのException が発生しております。
> ・java.lang.ClassCastException: java.lang.String
>    at jp.co.test.dao.ExcelDao$$EnhanceByS2AOP$$1316b76.selectExcelListData(ExcelDao$$Enhance
> dByS2AOP$$1316b76.java)
> (2行目は作成したDAO呼び出し元クラス)
>> (コピペできない環境の為、スタックトレースはご勘弁下さい)
> 場所は、変換されたDAO クラス内で落ちているようです。
> 
> ちなみに、「DataSet」を「List<ExcelList>」にした場合、
> 正しく動作し、結果が取得できました。
> 
> 
> DataSet が取得できれば、Excel出力が簡単だと思ったのですが、
> やはり出来ないのでしょうか?
> 
> 大変申し訳ありませんが、ご教授願います。
> 
> 
> ----- Original Message ----- 
> 送信者: 李道広<[E-MAIL ADDRESS DELETED]>
> 宛先: [E-MAIL ADDRESS DELETED]
> 日付:Wednesday, June, 24, 2009, 09:48 AM
> 件名: [Seasar-user:17836] Re:S2DAO からの DataSet 取得について
> 
> > 
> > 
> > 李です。
> > 
> > -----Original Message-----
> > From: [E-MAIL ADDRESS DELETED]
> > Subject: [Seasar-user:17832] S2DAO からの DataSet 取得について
> > 
> > 
> > こんばんは。
> > pianyi と申します。
> > 
> > 今回、Seasar2に同封されているPOIを使用して、DBの値をEXCELに出力しようと考え
> > ております。
> > 
> > そこで、S2DAOのSQLファイル形式の方法?でSQLを発行していますが、
> > Excel出力用に戻り値を「DataSet」実装してみたのですが、取得出来ないようです。
> > 
> > DAOのプロジェクトよりサンプルを確認しましたが、外だしSQLファイルを元に
> > 「DataSet」を取得するようなサンプルがない為、どのように実装すれば良いかわか
> > りません。
> > 
> > 
> > diconファイルにSQLを書いたり、addSQL()を使用して行う事は出来ると思うのです
> > が、
> > 今までの流れ(SQLはSQLファイルに記述する)を変えたくありません。
> > 
> > つきましては、
> > ・出来るか、出来ないか。
> > →できます。
> > 
> > 出来る場合は、
> > ・どこか参考になるURL
> > ・サンプルコード
> > など御座いましたら教えて頂けないでしょうか?
> > →「http://s2dao.seasar.org/ja/s2dao.html」の「SQLファイル名」に記述されまし
> > た。
> > 
> > 曖昧な質問で大変申し訳ありませんが、ご教授願います。
> > 
> > 以上、よろしくお願い致します。
> > 
> > 開発環境:
> > ・mayaa-10.7.jar
> > ・s2-struts-1.2.8.jar
> > ・s2-dao-1.0.40.jar
> > ・s2-extension-2.3.16.jar
> > ・s2-framework-2.3.16.jar
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> > 
> > ------------------------------------------------------------------------------------------
> ---------
> > Confidentiality Notice: The information contained in this e-mail and any accompanying atta
> chment(s) 
> > is intended only for the use of the intended recipient and may be confidential and/or priv
> ileged of 
> > Neusoft Corporation, its subsidiaries and/or its affiliates. If any reader of this communi
> cation is 
> > not the intended recipient, unauthorized use, forwarding, printing,  storing, disclosure o
> r copying 
> > is strictly prohibited, and may be unlawful.If you have received this communication in err
> or,please 
> > immediately notify the sender by return e-mail, and delete the original message and all co
> pies from 
> > your system. Thank you. 
> > ------------------------------------------------------------------------------------------
> ---------
> > 
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> > 
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user

-- 
Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>



Seasar-user メーリングリストの案内