このレッスンでは、Ultra Light Java Edition データベースを作成し、そのデータベースに接続するコードを記述します。
前提条件
このレッスンは、受講者がこれまでのすべてのレッスンを終了していることを前提としています。 レッスン 1:新しい BlackBerry プロジェクトの設定を参照してください。
内容と備考
新しいデータベースを作成するコードは、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.ultralitej16.*; 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; } |
このクラスは、UltraLiteJ16.jar ファイルから com.ianywhere.ultralitej16 パッケージをインポートします。次の手順は、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\ ディレクトリに移動して、UltraLiteJ16.cod ファイルを開きます。
場合によっては、アプリケーションを実行するために、UltraLiteJ16.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 © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |