このレッスンでは、Ultra Light J データベースを作成し、そのデータベースに接続するコードを記述します。新しいデータベースを作成するためのコードは、DataAccess というシングルトン・クラスで定義され、HomeScreen コンストラクタから呼び出されます。シングルトン・クラスを使用すると、データベースへの接続が、一度に 1 つしか開かれないよう制御できます。Ultra Light J は複数の接続をサポートしていますが、一般的な設計パターンでは 1 つの接続を使用します。
HomeScreen コンストラクタを変更して DataAccess オブジェクトをインスタンス化します。
次に、更新した完全な HomeScreen クラスを示します。DataAccess オブジェクトは、コードの他の部分からアクセスできるように、クラスレベル変数として格納されます。
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(false); _statusLabel.setText("Status: Connected"); } catch( Exception ex) { _statusLabel.setText("Exception: " + ex.toString() ); } } private LabelField _statusLabel; private DataAccess _da; } |
HelloBlackBerry プロジェクトに myapp\DataAccess.java というファイルを作成します。
データベース接続が 1 つになるようにする getDataAccess メソッドを記述します。
package myapp; import ianywhere.ultralitej.*; import java.util.*; import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; 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 ); } else { try{ _conn = DatabaseManager.connect( _config ); } catch( ULjException uex1) { if( uex1.getErrorCode() != ULjException.SQLE_ULTRALITE_DATABASE_NOT_FOUND ) { System.out.println( "Exception: " + uex1.toString() ); Dialog.alert( "Exception: " + uex1.toString() + ". Recreating database..." ); } _conn = DatabaseManager.createDatabase( _config ); } } // _da.createDatabaseSchema(); } return _da; } private static Connection _conn; private static DataAccess _da; } |
このクラスは、UltraLiteJ.jar ファイルから ianywhere.ultralitej パッケージをインポートします。データベースを作成する、またはデータベースに接続する手順は、次のとおりです。
設定を定義します。この例では、ConfigObjectStore 設定オブジェクトです。これは、Ultra Light J データベースが BlackBerry のオブジェクト・ストア内に永続的に存在することを意味します。
データベースへの接続を試行します。
接続の試行に失敗した場合は、データベースを作成します。createDatabase メソッドが、開いた接続を返します。
[F5] を押してアプリケーションを構築し、Device Simulator に配備します。
[File] メニューから、[Load Java Program] を選択します。
Ultra Light J インストール・ディレクトリの J2meRim11 フォルダを参照し、UltraLiteJ.cod ファイルを開きます。
シミュレータからプログラムを実行します。
アプリケーションがデータベースに正常に接続したことを示すステータス・メッセージが表示されます。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |