問題タブ [data-access-layer]

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 投票する
3 に答える
3024 参照

java - JAVA Swing クライアント、リモート データベースへのデータ アクセス。イバティス

リモート データベースにアクセスする必要がある Java クライアントがあります。データベース資格情報をユーザーから隠し、コード内に資格情報をハードコーディングしないことが目標です。したがって、データベースへのアクセスはおそらくサーバー側で行う必要があります。

データ抽象化フレームワークとして Ibatis を使用するように制限されています。それとは別に、Web サーバーで JBoss を実行しているため、データ ソースを使用できます。

リモート データベース アクセスとデータのシリアライゼーション/デシリアライゼーションをどのように設計しますか。ソケットよりもある種のデータ ストリームの Web サービスを優先しますか? 両方のどちらかをどのように認識しますか?

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

linq-to-sql - テーブルの切り捨てを行うための正しいLINQtoSQL風の方法は何ですか?

私は、LinqtoSQL を使用して、データベースに触れるほぼすべてのデータ アクセス レイヤーを備えたプロジェクトを持っています。CLSA オブジェクトから LinqToSql オブジェクトへのいくつかの一般的な crud 操作を橋渡しするヘルパー クラスを作成する必要がありました。テーブルでトランケートを実行する必要が生じるまで、すべてがスムーズに動作しており、「削除」メソッドしかありませんでした。

ええとああ。簡単に検索すると、何人かの人々が YourContext.ExecuteCommand() を使用していることがわかります。

テーブルで切り捨てを実行するLINQの方法はありますか? それとも私は無知ですか?

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

.net - ビジネス層とデータ アクセス層の間でデータを渡す - 悪いコードですか?

JCProperty クラス内で次のコードを使用して、DAL からデータを取得しています。

これは問題なく動作しますが、DAL オブジェクト (JCPropertyDB) がビジネス オブジェクト (JCProperty) を認識している必要があり、同じオブジェクトを 2 回効果的に作成して入力します (1 回は DAL で BL に戻り、次に BL オブジェクト内で再度入力します)。自体)。

ここで何かが欠けています。もっと良い方法があるはずです!

事実上、許可されていない「Me = x」を割り当てる必要があります。誰かが私をまっすぐにすることができますか?

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

data-access-layer - 別のオブジェクトへの参照を持つオブジェクトのデータアクセス層を作成する際のベストプラクティスは何ですか?

(英語で申し訳ありません)たとえば、私のDALには、Nameを持つAuthorDBオブジェクトと、TitleとIdAuthorを持つBookDBオブジェクトがあります。

ここで、対応する著者の名前ですべての本を表示する場合は、すべての本のコレクションを取得する必要があります。各本について、IdAuthor属性を使用して著者の名前を見つけます。これにより、データベースに対して多くのクエリが実行され、明らかに、単純なJOINを使用できます。

私のオプションは何ですか?著者の名前と本のタイトルを含む「カスタム」オブジェクトを作成しますか?もしそうなら、メンテナンスがひどくなる可能性があります。

それで、オプションは何ですか?ありがとうございました!

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

c++ - シリアル化およびリレーショナル データベース データ アクセスにデータ アクセス オブジェクトを使用する方法

バイナリ ファイルと RDBMS の両方にクラス インスタンス データを読み書きするための機能またはフレームワーク (つまり、インターフェイス クラスなど) を提供する C++ ドメイン モデル クラス ライブラリを開発しています。このライブラリの基礎は、RDBMS を使用するアプリケーションです。データベースの取得と更新の一連の呼び出しを実行してメンバー データのコレクションを取得することにより、クラスをインスタンス化するメソッドがいくつかあります。シリアル化されたデータ アクセスでは、データを整理する方法が異なるため、ドメイン モデルがプライマリ/外部キー、ID などを完全に認識しないようにする必要があります。

この問題を解決するために、私はデータ アクセス オブジェクト(DAO) パターンの使用を検討しており、DAO オブジェクトの「粒度」、有効期間、および使用についてアドバイスをお願いしたいと思います (返信では、C++ を使用することに注意してください)。であり、ドメイン クラスは RDBMS またはバイナリ ファイル ストアからの ID/キー情報を保持できない):

  1. ドメイン オブジェクトの各 Foo インスタンスには独自の FooDAO インスタンスがありますか、それともクラス Foo のすべてのインスタンスに対して単一の FooDAO インスタンスがありますか?
  2. FooDAO は Foo インスタンスごとに 1 回作成されますか?それとも、FooDAO インスタンスはデータへのアクセスが必要な場合にのみ作成され、その後すぐに破棄されますか?
  3. DAOのJ2EEページでは、DAO に加えて DTO を紹介しています。DAO がデータを転送できないのはなぜですか?
  4. 他のドメイン クラス Bar のインスタンスを持つ複雑なドメイン クラス Foo の場合、FooDAO クラスが BarDAO クラスを使用してデータを取得することは避けられないようです。これは、ドメイン クラス構造と DAO クラス構造に並列の階層/依存関係をもたらします。これをどのように管理するのが最善でしょうか?

ご協力いただきありがとうございます!

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

php - MVC のデータ アクセス層とモデルの違い

私はいくつかの Web アプリケーションで MVC のかなりまともな表現だと思っていたものを実装しましたが、crackoverflow に参加して以来、おそらく私の最初の定義は少し単純化されていたことがわかりました。 Web アプリケーションのデータ アクセス層とモデルまたはドメイン層。

コンテキストとして、私は現在、オブジェクトが表すテーブル内の単一のレコードに対して CRUD 関数を実装するデータ アクセス オブジェクトと、オブジェクトを返す get() 関数を使用して、条件を満たすすべてのオブジェクトを反復処理できるようにします。 get() 関数の基準。

これらのデータ アクセス オブジェクトは、ビジネス ロジックを含むコントローラー スクリプトから直接参照されます。

問題があれば、私は PHP と MySQL で作業していますが、他の言語でコーディングできる提案に興味があります。

更新:より具体的な例として、電子メール アドレス、アクティブな状態、ユーザー名、パスワード、所属する会社などの情報を保持する user (ここでの規則は単一のテーブル名です) というテーブルがあります。この基本的なオブジェクトはコードでは次のようになります。

DAO レイヤーとモデル レイヤーを単純化して、実際のタイプの機能 (ユーザーのログインなど) とデータ アクセス機能の両方を組み合わせたように思えます。

0 投票する
4 に答える
231 参照

.net - 新しいプロジェクトで使用するデータ アクセス レイヤーに影響を与える要因は何ですか?

クラスで教えますが、データ アクセス テクノロジの決定に影響を与える要因を説明する必要があります。型付きデータ セット、Linq to SQL、Linq to Entities、.netTiers、LLBLGen、SQL 接続オブジェクトとコマンド オブジェクトを使用したカスタム呼び出しなど、多くのデータ アクセス方法に精通しています。一部のクライアントは、ストアド プロシージャの使用のみを許可し、それ以外については何も話しません。一部のクライアントは、まだ .NET 3.5 をインストールする準備ができていません。一部のクライアントでは、Web アプリケーションに中間の Web サービス層が必要です。ほとんどの場合、Types Data Sets と Custom Web Services を使用するか、CodeSmith で .netTiers を使用します。他に何を考えるべきですか?

0 投票する
3 に答える
933 参照

architecture - データ アクセス レイヤー: List<> の公開: 悪い考え?

現在、単純なデータ アクセス レイヤーをコーディングしていますが、他のレイヤーにどの型を公開する必要があるのか​​疑問に思っていました。

Data を List<> として内部的に実装する予定ですが、不要な場合は List 型を消費者に公開しないことについて読んだことを覚えています。

理由を知っていますか (Google は役に立ちませんでした)。あなたは通常、そのようなもののために何を公開しますか? Iリスト? IEnumerable?

0 投票する
4 に答える
219 参照

sql - データベースの抽象化 - 複数の構文をサポート

私が取り組んでいる PHP プロジェクトでは、複数のデータベース プラットフォームをサポートするためにいくつかの DAL 拡張機能を作成する必要があります。これに関する主な落とし穴は、プラットフォームが異なれば構文も異なることです。注目すべき MySQL と MSSQL はまったく異なります。

これに対する最善の解決策は何ですか?

以下は、私たちが話し合ったいくつかの例です。

クラスベースの SQL 構築

これには、SQL クエリを少しずつ構築できるクラスを作成することが含まれます。例えば:

ただし、単一のクエリにはかなりの数の行が含まれます。

SQL 構文の再フォーマット

このオプションははるかにクリーンです。SQL コードを読み取り、入力言語と出力言語に基づいて再フォーマットします。ただし、解析に関する限り、これははるかに遅いソリューションであることがわかります。

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

asp.net - CMSでのCRUDページとデータアクセス層の迅速/簡単な生成

クラスファイルを生成したいデータベースと、作成/読み取り/更新/削除のためにクラスファイルとインターフェイスするためのリストビューを含む.aspxページを生成しました。私はSubsonicを使い始めましたが、足場制御がどれほど柔軟かわかりません。また、LINQはオプションのように見えますが、それが生成されたとしたら便利です。

理想的には、データベースクラスのセットであるDALを使用して、必要なものを微調整できます。また、リストビュー/データグリッドを使用してWebインターフェイスのWebフォームを出力し、バックエンドに組み込むことができます。ただし、出力が生成されるので、必要に応じて自分で微調整できます。

前もって感謝します。私が質問している理由は、私が独立してプロジェクトに取り組んでおり、データアクセス操作が常にプロジェクトの中で最も時間のかかる部分であるためです。