このレッスンでは、Ultra Light Java Edition データベースを作成し、そのデータベースに接続するコードを記述します。新しいデータベースを作成するコードは、DataAccess というシングルトンクラスで定義され、HomeScreen コンストラクターから呼び出されます。シングルトンクラスを使用すると、データベースへの接続が、一度に 1 つしか開かれないよう制御できます。Ultra Light API は複数の接続をサポートしていますが、一般的な設計パターンでは 1 つの接続を使用します。
HomeScreen クラスを変更して DataAccess オブジェクトをインスタンス化します。
次に示すのは、完全で更新された HomeScreen クラスコードリストです。
import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; import java.util.*; class HomeScreen extends MainScreen { HomeScreen() { // Set the window title LabelField applicationTitle = new LabelField("Hello BlackBerry"); setTitle(applicationTitle); // Add a label to show application status _statusLabel = new LabelField("Status: Started"); add(_statusLabel); // Create database and connect try { _da = DataAccess.getDataAccess(true); _statusLabel.setText("Status: Connected"); } catch(Exception ex) { _statusLabel.setText("Exception: " + ex.toString()); } } private LabelField _statusLabel; private DataAccess _da; } |
Eclipse が DataAccess が解決できないという警告を表示する可能性があります。DataAccess オブジェクトは、コードの他の部分からアクセスできるように、クラスレベル変数として格納されます。DataAccess クラスは、次の手順で作成します。
プロジェクトに DataAccess クラスを追加します。
[Package Explorer] ウィンドウで、HelloBlackBerry を展開して [src] をクリックします。
[File] » [New] » [Class] をクリックします。
[New Java Class] ウィンドウが表示されます。
[Name] フィールドに DataAccess と入力します。
[Finish] をクリックします。
DataAccess.java ファイルが [Package Explorer] ウィンドウで作成中のプロジェクトの下に表示されます。
DataAccess クラスを変更して、単一のデータベース接続を確実にする getDataAccess メソッドを含むようにします。
[Package Explorer] ウィンドウの DataAccess.java をダブルクリックしてから、次の抜粋部分とコードを置き換えます。
import com.ianywhere.ultralitej12.*; import net.rim.device.api.ui.component.*; import java.util.*; class DataAccess { DataAccess() { } public static synchronized DataAccess getDataAccess(boolean reset) throws Exception { if (_da == null) { _da = new DataAccess(); ConfigObjectStore config = DatabaseManager.createConfigurationObjectStore("HelloDB"); if (reset) { _conn = DatabaseManager.createDatabase(config); // _da.createDatabaseSchema(); } else { try { _conn = DatabaseManager.connect(config); } catch (ULjException uex1) { if (uex1.getErrorCode() != ULjException.SQLE_ULTRALITE_DATABASE_NOT_FOUND) { Dialog.alert("Exception: " + uex1.toString() + ". Recreating database..."); } _conn = DatabaseManager.createDatabase(config); // _da.createDatabaseSchema(); } } } return _da; } private static Connection _conn; private static DataAccess _da; } |
このクラスは、UltraLiteJ12.jar ファイルから com.ianywhere.ultralitej12 パッケージをインポートします。次の手順は、Ultra Light Java Edition データベースを作成したり、そのデータベースに接続するために必要です。
設定を定義します。このチュートリアルでは、設定オブジェクトは ConfigObjectStore インタフェースによって定義されます。このインタフェースによって、BlackBerry オブジェクトストア上に存在する永続的なデータベースを設定できます。
データベースへの接続を試行します。このチュートリアルでは、データベースは、接続が失敗したときに createDatabase メソッドを使って作成されます。このメソッドが、開いた接続を返します。
[File] » [Save] をクリックします。
シミュレーターを実行します。
[Package Explorer] ウィンドウで Application.java をクリックしてから、[Run] » [Run As] » [BlackBerry Simulator] をクリックします。
ワークスペースで複数のプロジェクトを開いている場合は、[Run] » [Run Configurations] をクリックし、HelloBlackBerry を選択してから [Run] をクリックします。
HelloBlackBerry プロジェクトがコンパイルされ、シミュレーターウィンドウが表示されます。
Eclipse の [Problems] タブを選択して、プロジェクトがエラーなくコンパイルされたことを確認します。
シミュレーターメニューで、[File] » [Load Java Program] をクリックします。
SQL Anywhere インストール環境の \UltraLite\UltraLiteJ\BlackBerry4.2\ ディレクトリに移動して、UltraLiteJ12.cod ファイルを開きます。
アプリケーションを実行するには、UltraLiteJ12.cod と DBG ファイルを作業中のシミュレーターディレクトリ (C:\Eclipse\plugins\net.rim.ejde.componentpack6.0.0_6.0.0.0.26\components\simulator\ など) にコピーする必要があります。コピーが完了したら、シミュレーターメニューから Java プログラムをロードする必要はありません。
シミュレーターメニューで、[Simulate] » [Set IT Policy] をクリックします。
[Set IT Policy] ウィンドウが表示されます。
[Policy] フィールドで、[Allow Third Party Apps to Use Persistent Store] をクリックし、[>>] をクリックします。
[Set] をクリックしてから、[Close] をクリックします。
アプリケーションを起動します。
シミュレーターウィンドウで、[Downloads] に移動してから HelloBlackBerry アプリケーションを実行します。
Hello BlackBerry タイトルバーと Status: Connected テキストを示す画面が表示されます。画面には、アプリケーションが Ultra Light Java Edition データベースに正常に接続されたことが表示されます。
シミュレーションを停止します。
シミュレーターウィンドウで、[File] » [Exit] をクリックします。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |