問題タブ [dao]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
206 参照

ms-access - Access2007を使用したDAOでの奇妙なフィールド割り当ての問題

これは私の前の質問のフォローアップです。

参照を整理して問題が発生すると、別のかなり奇妙な問題が発生しました。基本的に、フォームのボタンの後ろに次のものがあります。

これで、参照をリンクし、2行目にブレークポイントを配置し、Recordset( "Att")にウォッチを追加しました。ブレークポイントで実行が停止すると、Recordset( "Att")がVariant / Object / Field2型の値を返し、フィールドに期待どおりの値が含まれていることがわかります。

しかし、2行目をステップオーバーすると(実行を許可すると)、次のエラーが表示されます:「オブジェクト変数またはブロック変数が設定されていません

そしてもちろん、attachmentFieldは、完了するとNothingが割り当てられます。私は何が欠けていますか?

0 投票する
2 に答える
800 参照

php - 1つの大きなDAOまたは複数の小さなDAO?

リレーションシップを持つデータベースにオブジェクトを保存する必要がある場合、そのdaoにすべての保存自体を実行させるのか、それとも他のDAOに委任するのか。他のDAOに委任する必要がある場合、それはDAO自体で行う必要がありますか、それとも上のレイヤー(サービスレイヤーなど)で行う必要がありますか?これにはORMを使用しますが、PHPではまだ良いものは何もありません。

0 投票する
2 に答える
18390 参照

java - POJO から注釈付きの hibernate テーブル名を取得する

私は大まかに次のように宣言されているエンティティを持っています:

私はジェネリック DAO クラスを作成しています。その際、「myUserTable」という名前を取得したいと考えています。この名前にたどり着く方法はありますか?

0 投票する
10 に答える
17422 参照

architecture - DAO レイヤーを永続レイヤー (JDO や Hibernate など) の上に配置する理由

データ アクセス オブジェクト (DAO) は一般的な設計パターンであり、Sun によって推奨されています。しかし、Java DAO の最も初期の例では、リレーショナル データベースと直接対話していました。つまり、それらはオブジェクト リレーショナル マッピング (ORM) を行っていました。最近では、JDO や Hibernate などの成熟した ORM フレームワークの上に DAO があるのを目にしますが、それが本当に良い考えなのか疑問に思います。

JDOを永続層としてWebサービスを開発しており、DAOの導入を検討しています。他のオブジェクトのマップを含む特定のクラスを扱うときに問題が発生することが予想されます。

JDO は、これを "BOOKS" テーブルと "BOOKDESCRIPTIONS" テーブルの間の外部キー制約にマッピングするほど巧妙です。BookDescription オブジェクトを透過的に読み込み (遅延読み込みを使用していると思います)、Book オブジェクトが永続化されるとそれらを永続化します。

「データ アクセス レイヤー」を導入して BookDao のようなクラスを作成し、その中にすべての JDO コードをカプセル化するとしたら、この JDO の子オブジェクトの透過的な読み込みはデータ アクセス レイヤーを迂回するのではないでしょうか? 一貫性を保つために、BookDescriptionDao オブジェクト (または BookDao.loadDescription メソッド) を介してすべての BookDescription オブジェクトをロードして永続化するべきではありませんか? しかし、そのようにリファクタリングすると、モデルの操作が不必要に複雑になります。

私の質問は、ビジネス層で直接 JDO (または Hibernate、または好きな ORM) を呼び出すことの何が問題なのですか? その構文はすでに非常に簡潔であり、データストアに依存しません。それをデータ アクセス オブジェクトにカプセル化する利点は何ですか?

0 投票する
2 に答える
2741 参照

spring - SpringでJDBCResultSetに同時にアクセスする

SpringJDBCDAOで大量のデータを処理しています。DAOは、取得操作が別のスレッドで行われている間(ExecutorServiceを使用)、 take()を使用して制限付きBlockingQueueで動作するオブジェクトに対してイテレーターを直接返します。

このスレッド内では、次の動作が見られます。取得は機能しますが、ResultSetへの特定の呼び出しにより、呼び出しがハングします。これらの呼び出しは

  • isClosed()および
  • isLast()

だがしかし

  • isAfterLast()または
  • isBeforeFirst()または
  • isFirst()

明らかに、最後の要素が何であるかを知る必要があります(イテレーターのhasNext()メソッドでfalseを生成する特別な要素をブロッキングキューに挿入するため)。オブジェクトをBlockingQueueに入れる前に、 ResultSetの行数を調べることで回避できますが、これは少し不器用に感じます。ResultSetを操作するためのスレッドセーフな方法はありますか?

マルチスレッドデータソース(私はC3POのComboPooledDataSourceをテストしました)に切り替えることは役に立たないようです。

注:この問題は、私がここで最初に(誤って)特定したものです

0 投票する
5 に答える
2826 参照

delphi - DAO を使用したクエリの実行

DAO を使用して、Access データベースに対して一連のクエリを実行したいと考えています。"Database.Execute()" メソッドは、結果セットを返さないクエリである "アクション クエリ" のみを実行できるという点で、これに適しているようです ( MSDN リファレンス)。レコードを返すクエリには、「Database.OpenRecordset()」を使用できます。間違ったタイプのクエリが渡されると、どちらのメソッドも例外をスローします。

リストにアクション クエリと選択クエリの両方がある場合、レコードを返すものと返さないものを事前に決定するにはどうすればよいですか?

0 投票する
5 に答える
1049 参照

php - OOP DAO 設計に関する質問

簡単な背景: 私は PHP でプログラミングしています。DB からのデータのフェッチとドメイン クラスの作成を担当する別のデータ アクセス層 (DAO クラス) を持つドメイン モデルがあります。

groupオブジェクトとgroupListオブジェクトの作成を担当する DAO クラスがあるとします。グループは、ソーシャル ネットワークのコンポーネントと考えることができます。ただし、この質問でそれらが何であるかは問題ではありません。

さまざまな基準に基づいてさまざまなgroupListオブジェクトを作成するように DAO に依頼できるようにする必要があります。

  • 最近追加されたグループ
  • 最も人気のあるグループ
  • 管理者によって「おすすめ」として識別されたグループ
  • 特定のタグが付けられたグループ
  • 特定のキーワードに一致するグループ
  • 特定のカテゴリ内のグループ
  • 特定の人が作成したグループ
  • 特定の日に作成されたグループ

これらのいくつかは、今は実際には必要ありませんが、プロジェクトが完了する前に必要になると想像できます. 今、私は素晴らしい単純な DAO メソッドであるcreateListから始めました。これはうまくいきました。擬似コードは次のように考えることができます。

アプリケーションの進行に合わせて、新しいメソッドcreateFeaturedListを作成しました。これはうまくいきました。しかし、実際にはcreateListと非常によく似ていて、クエリが少し異なります。約 150 行のコードの残りの多くは同一でした。

それで...必要なわずかに異なるすべてのケースについてどうすればよいですか? ほとんどの場合、特定の基準に基づいてリストをフィルタリングおよびソートしたいだけです。問題はこれです-私はすべきですか:

a)次のような集中的な作成方法をたくさん作成します。

  • createList()
  • createCategoryList( カテゴリオブジェクト )
  • createUsersList ( userObject )
  • createTagList (タグ)
  • createPopularList ()

また

b)すべてを実行できる 1 つの BIG メソッドを作成します。 - createList ( searchString, orderBy, filterByCategoryObject=null, filterByUserObject=null )

私のDAOインターフェイスはよりシンプルで、変更する必要がほとんどないため、(a)のアイデアが非常に気に入っています(たとえば、比較するために突然日付を渡す必要があるときに別のパラメーターを追加する)他のパラメーターと組み合わせたいキーワード。例: 検索されたカテゴリ リスト、検索された人気リスト、検索されたタグ リストなど... (a) は、私が始めたもののようなものです。

(b) へのリファクタリングをいじりましたが、SQL を構築するときのさまざまなケースに対処するために、メソッドが非常に大きく、非常に複雑になり、多くの "if" と "select" が発生することがわかります。メソッドに渡される多くのパラメーター。しかし、少なくともすべてが 1 か所にあります。そして、物事を組み合わせることができます。例: blah でタグ付けされた、キーワード blah に一致するユーザーのグループ。

0 投票する
2 に答える
5482 参照

c# - C#とDAO。RS.Fields( "ColName")が機能しないのはなぜですか?

最後の命令はVBAまたはVB.NETで機能すると思いますが、C#では機能しないのはなぜですか?

0 投票する
6 に答える
1899 参照

ms-access - 2 つの「拡張子」を持つファイルを開くときの Jet エラー 3011

Jet を使用して 2 つの「拡張子」(「f​​ilename.tst.csv」) を持つファイルを開こうとすると、エラー 3011 がスローされるという問題があります。

実行時エラー「3011」

Microsoft Jet データベース エンジンは、オブジェクト 'filename.tst.csv' を見つけることができませんでした。オブジェクトが存在すること、およびその名前とパス名のつづりが正しいことを確認してください。

コードは次のようになります。

2 番目の拡張子 (または見かけの拡張子) ".tst" であるという問題を突き止めましたが、エラーが発生している理由がわかりません。また、Google またはここで回答を見つけることができませんでした。誰かが制限について何らかの洞察を持っているかもしれないと思います。

これはVB6でDAO 3.6を使用しています。

0 投票する
1 に答える
1195 参照

excel - CDaoDatabase で Excel 2007 (xlsx) ファイルを開く方法

afxdao.h で定義されている CDaoDatabase を使用して、Excel 2007 (xlsx) ファイルを開くにはどうすればよいですか? 接続文字列 Excel 8.0;HDR=NO;IMEX=1 を使用して Excel 2003 (xls) ファイルを開くことができます。

ありがとう!