0

Java アプリケーションをリモート サーバーのクライアントにする必要があります。これにORMLiteを使用できますか? ドキュメントには、Spring フレームワークが記載されています。しかし、a) 使い方がわからない、b) このアプリケーションで機能するかどうかわからない。

サーバーで接続するということは、DAO を使用して、サーバー上のデータベースからデータをポーリングおよびプッシュすることを意味します (ほとんどのクライアント/サーバーがそうしているように)。 ここに画像の説明を入力


編集:グレイのフォローアップに応えて。


私が混乱していることについてさらに詳しく説明する前に、相互作用するクラスが何をするかについての私の理解を述べる必要があります。

JDBCConnectionSource

クライアント (ConnectionSource の起動元) とホスト (データベース ローカルまたはサーバー ベース) の間のブリッジです。

ダオ

SQL クエリを簡単に作成するためのツールを提供するインターフェイス。

今、私がまだ完全に理解していないのは、と のサーバーDAOとの相互作用です。JdbcConnectionSourceアプリケーションDAOは、完全に「コンパイルされた」SQL ステートメントを生成し、それをConnectionSourceホストに送信するためにアプリケーションにディスパッチしますか? サーバーはSQLリクエストを受信すると、それを適切に委任します-リクエストを処理し、データを収集して返しますか?

4

1 に答える 1

2

私はあなたが何を意味するのか100%確信が持てませんが、ここではORMLiteとリモーティングに関する一般的な情報をいくつか紹介します. ORMLite は、サーバー上のリモート データベースに確実にアクセスできます。リモート システムを指す JDBC URL を指定するだけです。

// you can change the database type, hostname, and the database name
String databaseUrl = "jdbc:mysql://host.name.j256.com/databaseName";
ConnectionSource connectionSource = new JdbcConnectionSource(databaseUrl);
...

これには確かに Spring を使用できますが、必須ではありません。HTTP、RMI、またはその他のリモート メカニズムを使用してサーバーに接続する場合は、そのためのクライアント/サーバー ラッパーを作成する必要があります。ORMLite は、JDBC によって提供されるものを除いて、リモート処理を提供しません。

お役に立てれば。


編集:

JDBCConnectionSourceJDBCを使用してデータベースと対話するConnectionSourceインターフェースの実装です。AndroidOS で直接データベース呼び出しを使用するものもあります。AndroidConnectionSource

ConnectionSource驚くべきことに、データベースへの接続のソースです。その javadocs を見ると、さまざまなメソッドを確認できます。最もよく使用されるメソッドは getReadOnlyConnection()、 、getReadWriteConnection()、およびreleaseConnectionです。これは、リモート処理自体を行いません。JDBC は、ローカルかリモートかを問わず、データベース サーバーへの実際の接続とリモート処理を行うことができます。

このDaoインターフェースは、データベースですべての操作を行うためのツールを提供します。を使用しConnectionSourceてデータベースへの接続を取得し、操作 (挿入、削除、更新、選択) を実行してから、データベース接続を解放します。

私がまだ完全に理解していないのは、DAO と JdbcConnectionSource とサーバーとの相互作用です。アプリケーション DAO は、完全に「コンパイルされた」SQL ステートメントを生成し、それをアプリケーションの ConnectionSource にディスパッチして、ホストに送信しますか?

いいえ。ORMLite は操作を実行するために必要な SQL を生成し、 からデータベースへの接続を取得ConnectionSourceし、SQL をコンパイルし、接続を使用して引数を設定し、接続を使用してステートメントを実行し、結果を処理してから解放します。接続。

于 2012-09-15T12:10:33.943 に答える