• 締切済み

DAOと呼ぶべきか、何と呼ぶべきか

やや抽象的な質問です Tomcat+Struts+Hibernate+PostgreSQL でWEBプログラムを書いています。 DBについて、Hibernateを使う前は JDBCを直接叩いていましたが、その部分は DAOとしてまとめて特定のクラスに役割を持たせていました。 現在は、その処理はHibernateに任せていますが、それでもすべてのクラスからHibernateを叩くわけでもなく、例えば会員管理をするとして、会員テーブルに対するトランザクション一般を特定のクラスに役割を持たせたくなります(POJOをエンティティにする分には不要ですが、SELECTなどで結局SQLを書く以上、欲しくなる)。 まさに今そういうクラスを作ろうとしていますが、そのクラス名で悩んでいます。 例えば、会員テーブルに関するHibernateへの手続きをまとめたクラスの名前を "UserDAO" のようにするべきか、それだといかにもJDBCを直接叩くクラスだと誤解されやすいか、どうでしょうか。 あるいは、"DAO"の解釈など、根本的に勘違いをしていますでしょうか。 "UserTableLogic"なんていうクラス名でもいいかも知れませんが、どうも散文的な感じがします。 「そんなんどうでもいいじゃん」と言いたくなる気持ちを抑えて是非ご教授下さいませ。

  • sj2
  • お礼率100% (1/1)
  • Java
  • 回答数1
  • ありがとう数1

みんなの回答

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

「DAO」はData Access Object の略ですが 一般的には汎用的な意味ではなく Microsoft Accessのデーターベースのエンジンを 指すのでは? ※一応有名です。

sj2
質問者

お礼

遅ればせながら、回答どうもありがとうございました。 私の認識では一般的な汎用的な意味なのですが、ご指摘の件についていろいろ調べてみようと思います。 ありがとうございました。

関連するQ&A

  • S2daoのSqlファイルでのDBアクセスについて

    お世話になります。現在Teeda+S2DAOの学習をしています。 そこでどうしても一点解決できない問題がありご質問させて いただきたく思い投稿いたします。 問題: DBアクセスの際に作成したSQLファイルの呼び出しを行いDBにアクセスしようとするとエラーが出力される。デフォルトのSQLファイルを利用しないDBアクセスは可能。 開発環境: アプリケーションサーバー:Tomcat5.5 IDE:eclipse3.2 DB:postgresql8.2 言語:java1.6 FW:Turaプロジェクト(Teeda+S2DAO) 出力されたエラーは以下の通りです。 org.seasar.framework.exception.SQLRuntimeException: [ESSR0072]SQLで例外(SQL=[update userinfo set userid = ?, password = ?], Message=[[ESSR0072]SQLで例外(SQL=[update userinfo set userid = ?, password = ?], Message=[0], ErrorCode=07006, SQLState={3})が発生しました : [SQLで例外(Message=[Can't infer the SQL type to use for an instance of agnietec.entity.UserInfo. Use setObject() with an explicit Types value to specify the type to use.], ErrorCode=0, SQLState=07006)が発生しました。], [Can't infer the SQL type to use for an instance of agnietec.entity.UserInfo. Use setObject() with an explicit Types value to specify the type to use.], ErrorCode=0, SQLState=07006)が発生しました at org.seasar.extension.jdbc.impl.BasicHandler.bindArgs(BasicHandler.java:195) at org.seasar.extension.jdbc.impl.BasicUpdateHandler.execute(BasicUpdateHandler.java:101) at org.seasar.extension.jdbc.impl.BasicUpdateHandler.execute(BasicUpdateHandler.java:80) at org.seasar.dao.impl.UpdateDynamicCommand.execute(UpdateDynamicCommand.java:43) at org.seasar.dao.interceptors.S2DaoInterceptor.invoke(S2DaoInterceptor.java:53) at org.seasar.dao.pager.PagerS2DaoInterceptorWrapper.invoke(PagerS2DaoInterceptorWrapper.java:71) at agnietec.dao.UserInfoDao$$EnhancedByS2AOP$$134ea95$$MethodInvocation$$updateUser8.proceed(MethodInvocationClassGenerator.java) at org.seasar.framework.aop.interceptors.TraceInterceptor.invoke(TraceInterceptor.java:73) at agnietec.dao.UserInfoDao$$EnhancedByS2AOP$$134ea95$$MethodInvocation$$updateUser8.proceed(MethodInvocationClassGenerator.java) at agnietec.dao.UserInfoDao$$EnhancedByS2AOP$$134ea95.updateUser(UserInfoDao$$EnhancedByS2AOP$$134ea95.java) 確信はないんですがエンコードでエラーが出ているのかと思い、 確認したのですが postgreはEUC_JP、 eclipseはUTF-8でした。 自分でも色々試行錯誤し、web.xmlのエンコード指定をEUC_JPなどにしてみましたが、状況に変化はありません。 <filter> <filter-name>encodingfilter</filter-name> <filter-class>org.seasar.extension.filter.EncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value> ここをEUC-JPにしました </param-value> </init-param> <filter> インターネットで調べても、調べ方が悪いのか同じような問題がみつからずほとほと困っています。どなたかご教授いただけないでしょうか? 何卒よろしくお願いいたします。

  • Webアプリのフレームワーク

    JavaのWebアプリを構築するときは、皆さんはどんなフレームワークをお使いでしょうか?お勧めのものがあれば教えていただけますか?特にトランザクション管理が楽になるものがあればぜひ教えていただきたいです。 今まではずっとjavaのWindowsアプリを作っていました。Webアプリはまったくの素人です。今のところ、 ■以下はほぼ決定: jdk:j2se5 サーブレットコンテナ:Apache tomcat5.x ウェブサーバ:Apache最新 DB:MySQL最新 IDE: Eclipse WTP最新 テスト系:JUnitなど ■以下のライブラリを使うかどうか迷ってます。 ・JSF(よさそう) or Struts、 ・hibernate、 ・Seasar(よさそう) or Spring など よろしくお願いします。

    • ベストアンサー
    • Java
  • Linux-PostgreSQLのテーブルをWindowsPCに表示

    会社で今行っている内容です(研修)。 内容: 自分のPC(Windows2000)で、他PC(RedHatLinux7.3)のDB(PostgreSQL7.4.2)内のテーブルを表示させる。 問題点: どこが間違っているのか漠然としているが、 ソースかJDBC設定があやしいと思います。 進め方: (1)Linux・PostgreSQLをインストール・設定  PostgreSQL内でテーブルを作成・表示済み (2)tomcat4.1.30・Apache1.3.27_4をインストール・設定  (WindowsのIEでtomcat・Apacheのページが開けるか確認済み) (4)JDBC設定(emacs ~/.bash_profile→CLASSPATH) (3)JDK1.3.1_11・mod_jk(モジュール)をインストール・設定  sampleソースをLinuxに送り、それをWindows上で表示servletを作成し、*.javaで保存 (4)FTPでLinux側に送り、コンパイルし*.class生成  /usr/local/tomcat/webapps/examples/WEB-INF/classes/  に移動 (5)Windows上で表示(予定)  http://localhost:8080/examples/servlet/ファイル名 エラー内容: (1)Exception in thread "main" ava.lang.NoClassDefFound Error;【class名】 (2)Something unusual has occured to cause the driver to fail.Pleas report this exception:Exception:java.sql.SQLException:FATAL1: No pg_hda.conf entry for host 127.0.0.1,user postgres,database 【database名】 Staek Trace: at ~ が5行 Endof Stack Trace at ~ が4行 Linux・PostgreSQL・Javaすべてまったくの初心者です。 アドバイスよろしくお願いします。

  • 教えて下さい。WindowsPCでPostgreSQLのテーブルを表示させる方法

    Windows2000PCからDB(PostgreSQL)内のテーブルを表示させる方法について。 (WindowsPCとLinuxPCは別のPC) 二度目の挑戦です。 とりあえず、servletを使用し、DB内で作成したテーブルをLinux側で表示させたいです。 どうも、JDBCがうまくいってない感じです。 CLASSPATH設定は、tomcat4.0以降だと違うのですか? pg_hba.confの設定はどうするのですか? RedHatLinux7.3をインストールしました。 その他にインストールする予定なものが、 tomcat Apache mod_jk ? (mod_webapps ?) JDK JDBC ANT です。 上記のバージョンにより、適応しなかったり、不具合が起こるなど、いろいろ問題があるみたいなので、問題なく進められるバージョンを教えて下さい。 (今お使いのバージョンなど) また、インストールする順番など。 出来れば、全体の大まかな流れについても参考にさせてもらいたいです。 まだ勉強不足で、ネットで調べても人によって違うので、間違えっぱなしです。 質問多すぎてすいません。 1つでもいいので教えて下さい。 よろしくお願いします。

  • org.firebirdsql.jdbc.FBSQLException:例外について教えてgoo

    初めて質問を投稿しました。宜しくお願い致します。 私は現在、Java+Tomcat(Struts)+FirebirdでのWEBアプリケーションを作成しています。 その中で、ViewよりSelectして取得した情報を画面に一覧表示するだけのそう複雑でないページなのですが、FirebirdのJDBCドライバから以下の例外が発生し、原因究明にとても困っています。 ----------------------------------------- org.firebirdsql.jdbc.FBSQLException: GDS Exception. invalid request BLR at offset 156 table id 238 is not defined ----------------------------------------- この例外が意図する事は、何なのでしょうか・・・? m(__)m教えてgoo!

  • JDBCレルムによるFORM認証

    お世話になります。 StrutsのJDBCレルムによるFORM認証について教えて下さい。 パスワードをSHAで暗号化したテーブルを使ってj_security_checkによる認証をさせたいのですが認証エラー(ID、Passwordが誤っています。 )となってしまいます。 DBはMySQLです。 SQLのログを見ると「SELECT password FROM users WHERE email = 'メールアドレス';」というログしか出ません。 このSQLをMySQLで実行すると暗号化されたパスワードが取得されます。 暗号化の方法が間違っているのか、JDBCレルムの指定が間違っているのかのいずれかとは思うのですが切り分け方法がわかりません。 TOMCATのログにもそれらしき情報が出ていないのですが、どのようにしたら認証エラーとなっている原因を調べることができるのでしょうか?

  • JavaからSqlServer2008への接続

    Java + EclipseからSqlServer2008への接続を勉強しています。 MidldegenというEclipseのプラグインを入れてhibernateのファイルを作成しようと試しているのですがうまくいきません。 Sql Server Management Studio2008でsaでログインし、[db1]というデータベースを作成し、その中に[tbl1]というテーブルを作成しています。 新規追加でMidldegenを選択するとフォームが表示されます。 フォームには以下の入力項目があります。 JDBC jar ->・・・sqljdbc.jar JDBCドライバ ->com.microsoft.sqlserver.jdbc.SQLServerDriver データベースURI ->jdbc:sqlserver://localhost:1433;databaseName=db1 ユーザ ->sa パスワード ->saのパスワード スキーマ ->空白です カテゴリ ->空白です ビューを含める ->false この状態でテーブル読み込みをすると 「データベース'%'が存在しません。名前が正しく入力されていることを確認してください。」 というエラーが出ます。。。 データベースURI ->jdbc:sqlserver://localhost:1433;databaseName=サーバ名\db1 とし、テーブル読み込みをすると 「このログインで要求されたデータベース"サーバ名\db1"を開けません。ログインに失敗しました。」 というエラーが出ます。。。 どなたかご教示よろしくお願いします

  • tomcatからのoracle接続エラーについて

    お世話になります。 javaサーブレットからoracleに接続する際、以下のエラーが発生して困っております。 エラー:java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver 解決するための情報を頂けますでしょうか。 私がテストしている環境は、以下となります。 【Webサーバ】 centOS5.5. jdk1.6 tomcat5.5 【DBサーバ】 centOS5.5. oracle11g r2 jdbcドライバーは、ojdbc6.jarを使用しております。 ドライバーは、Webサーバの /WEB-INF/libと$TOMCAT_HOME/common/lib配下に設置しております。 環境変数クラスパスに$TOMCAT_HOME/common/libが、設定されていることも確認しております。 JDBCドライバについては、以下の3パターンで試してみましたがすべて同じエラーとなりました。  ・オラクルインストール時のもの(DBサーバ)  ・オラクルHPの11g r2(11.2.0.1)のもの  ・オラクルHPの11g r2(11.2.0.2)のもの どのJDBCドライバを配置した時も、cataline.outには、 oracle.jdbc.OracleDriverクラスが、追加できたというログが出力されておりました。 尚、同じWebサーバでpostgresqlに接続するjavaサーブレットは、/WEB-INF/lib 配下にJDBCドライバーを配置しているだけで問題なく動作しております。 お手数お掛け致しますが、ご教授宜しくお願い致します。

    • ベストアンサー
    • Java
  • JDBCでテンポラリテーブルを扱う

    JDBCを使って、テンポラリテーブル(DBはMySQL)を作成したのですが、CREATE文を発行したクラス内では、INSERT,SELECTできるのですが、別クラス(別画面から別業務クラス)で、テンポラリテーブルにアクセスしようとすると、 テーブル名 doesn't exist というエラーが出てアクセスできません。 どこに原因があると考えられるでしょうか?

    • ベストアンサー
    • Java
  • eclipseでのstrutsについて

    すみませんがどなたか助けてください! strutsでの開発をすることとなり、現在勉強中なのですが最初のjspにて parsingエラーとなりつまづいております。。 【現在の環境】 eclipse3.0.1 Tomcat 5.0.28 j2sdk1.4.2_08 struts1.1 主なプラグイン: lomboz.301 (EMF 2.0.2) tomcatplug-in V3 Hibernate synchoronizer 3.0.1  以上のような環境でeclipseから新規プロジェクトを Tomcatプロジェクトにて作成し、struts-blank.warを解凍したものをworkspaceにコピーしております。  struts関連の参考サイトをみながら学習しておりましたが、 まず最初の"http://localhost:8080/プロジェクト名/index.jsp"にアクセスしてもエラーとなります。 エラーログ: javax.servlet.ServletException: Missing message for key "welcome.title"~以下略 また、eclipseのindex.jspファイル上でもエラーが表示されておりまして、 <%@ taglib uri="/tags/struts-logic" prefix="logic" %>のところで 「JSP Parsing Error:"/tags/struts-logic"がみつかりません。」と表示されます。 環境設定に問題があるのでは・・と調べてはいるのですが2日悩んでおりますが未だ解決に至っておりません。  http://localhost:8080/struts-blank/にアクセスするこは確認できております。  とりわけ自信がないのはeclipseでのTomcatの設定なのですが、色々調べてみたつもりですが、 上手くいきません。 クラスパス:C:j2sdk1.4.2_08\tools.jar ブートクラスパス:C:j2sdk1.4.2_08\rt.jar          C:j2sdk1.4.2_08\charset.jar 以上の設定をしています。 eclipseでは不要とのことですが、 JAVA_HOMEやTOMCAT_HOMEなどは環境変数で 設定してみました。  やれることはやったつもりなのですが.. もう私レベルでは手詰まりとなってしまいました。 どなたかお助けください。。。

    • ベストアンサー
    • Java

専門家に質問してみよう