
業務用RIAの本命!? Flex+Java開発入門(最終回)
動かして試すAdobe AIR+Javaアプリの“可能性”
クラスメソッド株式会社
福田 寅成
2008/11/12
■ 【3】データの削除
次に、テーブル作成成功後の処理(sqlStatementCreateResultHandler)を見ていきます。
private function sqlStatementCreateResultHandler( |
上記処理では、すぐにdeleteRecordメソッドを呼び出しています。deleteRecordメソッドは以下のようになります。
public function deleteRecord():void { |
- - PR -
ここでは、サーバから取得したデータを挿入する前に、既存データが存在していた場合に既存データをすべて削除してテーブルを空にしています。処理の流れはCREATE文実行のときとまったく同じですね。
■ 【4】データの挿入
続いて、テーブルデータ削除成功後の処理(sqlStatementDeleteResultHandler)を見ていきます。
private function sqlStatementDeleteResultHandler( |
上記処理ではすぐにinsertRecordメソッドを呼び出しています。insertRecordメソッドは以下のようになります。
private function insertRecord():void { |
これ以降は3つのメソッドが連携して1万回のINSERT処理を実行しています。上記insertRecordは初期処理を行って1回目のINSERT実行をinsert()メソッドに依頼しています。これまでとの違いは、最初にトランザクションを開始しているところです。
これにより、SQL失敗時にロールバックしたりといったことが可能です。また、トランザクションを開始しない場合、毎回の処理でコミット処理が実行=データベースファイルへの書き込み処理が発生し、著しいパフォーマンス低下が発生します。
実際のINSERT処理を担当するinsert()は以下のようになります。
private function insert():void { |
この処理のポイントは、「パラメータ化されたSQL」です。多くのデータベースアクセスフレームワーク同様にSQLを文字列連携で作成するのではなく、SQL文内にパラメータを設定し外部から値を設定することがSQLiteでも可能です。
パラメータはコロン(:)またはアットマーク(@)から始まるパラメータ名でしています。クエスチョンマーク(?)でも指定が可能ですが、前者がSQLStatementに対してパラメータ名によって値を設定するのに対して、後者はインデックス(parameters[0]、……、parameters[n])で値を設定します。
今回のサンプルアプリケーションでは、前者で設定しています。このパラメータ指定の構文を採用することにより、SQLに対してSQLインジェクション対策がSQLStatementクラス側で自動的に行われます。
次に1件1件のINSERT処理の結果イベント(sqlStatementInsertResultHandler)を見ていきます。
private function sqlStatementInsertResultHandler( |
この処理は単にinsert()メソッドを1万回しているだけです。1万回実行後に、SQLをコミットして、後処理につなげています。後処理ではビジーカーソルを元に戻して、画面上部のボタンを押せるように元に戻しています。
■ SQLiteの可能性は体験してから探ろう
このようなSQLを実行するということは、HTMLやFlexアプリケーションを作成するほとんどの方はいままでやらなかったと思います。
AIRでは、クライアントアプリケーションが直接内蔵のデータベースに対してSQL経由でやりとりできるのです。いろいろな用途にSQLiteは応用できる可能性を秘めているので、まずは皆さん実際にアプリケーションを動かしてSQLiteの機能を体験してみてください。
データをXML形式ファイルとしてデスクトップへ保存
次に、AIRの特徴的な処理である「ファイルアクセス」の例として、ファイル書き出し処理の部分を見ていきます。UserLogicクラスのxmlButtonClickHandlerからの一連の処理がXML書き出し処理です。処理の流れは以下のようになります。
次ページからは、それぞれの処理の詳細を見ていきましょう。そして、最後にAIRを採用する場合によく問題点に挙げられることについて触れ、連載を締めくくりたいと思います。
| 1-2-3-4 |
| INDEX | ||
| 業務用RIAの本命!? Flex+Java開発入門(最終回) 動かして試すAdobe AIR+Javaアプリの“可能性” |
||
| Page1 AIR+Java:新しいアプリケーションの形 FlexとAIRの違い:次世代デスクトップRIAの可能性 いままでのFlex+JavaアプリをAIR+Javaに移植! |
||
| Page2 AIR独自の機能を1万件データ表示アプリに追加 サーバから取得したデータをローカルDBへ挿入 注意! 「SQL内のテーブル名を小文字に」 |
||
| Page3 データをXML形式ファイルとしてデスクトップへ保存 |
||
| Page4 AIRを採用する際の問題点とは? 可能性を秘めたAIR+Javaペア |
||
| リッチクライアント&帳票 全記事一覧へ |
TechTargetジャパン
- 次のモバイルアプリはどのフレームワークで作る? (2012/5/24)
スマホアプリの開発を容易にするJavaScriptのフレームワークが続々と増えている。それぞれの良さや仕組み、何がどこまでできるのかを徹底解剖する - 「LESS&専用エディター」でCSSをシンプルに書こう (2012/5/23)
「LESS」はCSS初心者に向けた、シンプルなライブラリだ。「LESS」で、変数などのプログラミングの基礎的な考え方もCSSで学ぼう - 学校が世界一のデジタル環境になったら (2012/5/18)
授業はアーカイブに蓄積され、家からも見られる。家族が授業テーマのアイデアを出す。そんな姿が実現されるかもしれない - 1000万ドル調達も夢じゃないクラウドファウンディング (2012/5/15)
クラウドファンディングは、寄付型でも投資型でもない「購入型」が主流。商品を“開発する前に販売”して開発費用を集める逆転のシステムだ
|
|
