2

Android アプリでjava.sql.PreparedStatementオブジェクトを使用して SQLite データベースをクエリする方法を調査していました。私は、以前に Oracle データベースにクエリを実行する Java アプリケーションをコーディングした経験に基づいて、この方法でクエリ ステートメントをコーディングすることに慣れています。

グーグルと Stackoverflow を行っている間に、 android.database.sqlite.SQLiteStatementを使用することが Android コーダーの間で広く受け入れられているソリューションであると簡単に結論付けることができました(たとえば、この投稿を参照してください)。それでも... Android で受け入れられている解決策が、java.sql.PreparedStatement の実装者ではないクラスを使用することである理由について、私は興味を持っています。

SQLiteStatement が PreparedStatement を実装しないのはなぜですか? パフォーマンス、ステートメントのコンパイル時間などの点で、2 つの違いは何ですか。PreparedStatement の Android 実装は存在しますか?

4

2 に答える 2

2

APISQLiteStatementAPIと同じではないからですPreparedStatement! 前者は、後者が要求するすべての機能を実装していません。例えば:

[ SQLiteStatement] は、データベースに対して実行できるステートメントを表します。このステートメントは複数の行または列を返すことはできませんが、単一の値 (1 x 1) の結果セットはサポートされています。

于 2012-10-04T03:06:09.397 に答える
0

私の解釈は次のとおりです。

Android には SQLLite データベースが組み込まれているため (他のデータベースはありません)、Android API は java.sql API 全体を使用する代わりに SQLLiteStatement を提供します。

SQLLite データベース自体は機能が制限されており、他のデータベースでできることをすべて実行できるわけではないため、軽量 API が導入されていると思います。

于 2012-10-04T02:55:41.203 に答える