2011-07-04 9 views
1

mysqlデータベースにレコードが挿入されたときにjavaメソッドまたはstrutsアクションクラスを呼び出すことができるかどうか教えてください Actuall私の問題は2データベース両方ともmysqlデータベース、つまりdb1とdb2)が2つの異なる場所で動作しています。それらの間の通信が必要です。レコードが同時にdb1のXテーブルに挿入されると、データに応じてdb2のYテーブルに挿入する必要がありますdb2に挿入されたデータは、db1のZテーブルに挿入する必要があります。mysqlデータベースにレコードが挿入されたときにJavaメソッドを呼び出す方法

Actuall私のプロジェクトは1つの埋め込まボタンがあるある患者1ケアテイカーのグループの患者のケアプロジェクト がそれぞれ、すべての患者のための
です。 患者の詳細と埋め込みボタンと対応するケア提供者との間のマッピングは、db2データベースにあります 患者が埋め込みボタンを押したとき埋め込み情報がdb1 に挿入され、inorderが介護者にモバイルメッセージを送信するようにしました。患者および介護者のマッピングは、DB2にあるように、DB2からのデータは、DB1に挿入埋め込ま情報にアップ応じ

ビジネスロジックVC++

ビジネスロジックは

のでJavaで書き込まれるDB2との通信に書き込まれるDB1と通信I db1とDB2

技術が

のJavaを使用するには、1.2

データベース支柱:mysqlの

+0

Struts 1またはStruts 2? –

+0

短い答えはYesです。それに応じてビジネスロジックを構成している限り。 insertコマンドはどこから来ますか? – GordyD

+1

レコードがアプリケーションの外部のdbに直接挿入されている場合は、それから、私が考える唯一の方法は、定期的にデータベースに問い合わせることです。 –

答えて

2

を私はそれはデシベル挿入から積極的にJavaコードをトリガすることが可能であるとは思いません。私たちがやっていることは反対さ:挿入が発生したとき、我々は定期的に実行され、新しいエントリ

ためにそのテーブルをチェックするJavaの仕事を持っている

  • 専用のテーブルにROWIDを

    • 書きますあなたはウェブコンテキストでこのようなことを行うべきではありませんので、この文脈ではstrutsを忘れてください!

  • 0

    Javaプロセスで定期的にテーブルを照会して、新しいレコードを確認することができます。より良い解決策は、必要なビジネスロジックをデータベーストリガで実行することです(ただし、strutsアクションを直接呼び出すことはできません)。行が挿入された後に実行する必要があるビジネスロジックの詳細を提供できる場合は、もっとクリーンな設計を提供することができます。

    0

    それは(それがSomeAction action = new SomeAction()のようにインスタンス化することができるシンプルなPOJOクラスだとして)別のStrutsアクションを使用することが可能だにもかかわらず、私はいくつかの理由のためにことをお勧めしませなります

    • あなたは様々な合格する必要がありますStrutsは動作させるためにアクションに設定します。
    • ActionForwardの応答を処理します。

    あなたのビジネスロジックを、2つのデータベースに同じデータを渡すことも、2つのデータベースにデータを記録する必要があることを理解する戦略を持つこともできます。

    0

    Here's an extension for MySQL(UDF)これは、MySQLから他のプログラムを実行できるようにします。

    使い方は比較的簡単です。私はあなたのアプリケーションの機能を知らないが、プログラムを呼び出し、db通信を確立するために必要な特定のパラメータを渡すトリガーを作成することができます。

    関連する問題