Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » Ultra Light J » Ultra Light J の使用 » チュートリアル:BlackBerry アプリケーションの構築 » 第 1 部:BlackBerry での Ultra Light J アプリケーションの作成

 

レッスン 3:Ultra Light J データベースの作成

このレッスンでは、Ultra Light J データベースを作成し、そのデータベースに接続するコードを記述します。新しいデータベースを作成するためのコードは、DataAccess というシングルトン・クラスで定義され、HomeScreen コンストラクタから呼び出されます。シングルトン・クラスを使用すると、データベースへの接続が、一度に 1 つしか開かれないよう制御できます。Ultra Light J は複数の接続をサポートしていますが、一般的な設計パターンでは 1 つの接続を使用します。

  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;
    }
  2. HelloBlackBerry プロジェクトに myapp\DataAccess.java というファイルを作成します。

  3. データベース接続が 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 パッケージをインポートします。データベースを作成する、またはデータベースに接続する手順は、次のとおりです。

    1. 設定を定義します。この例では、ConfigObjectStore 設定オブジェクトです。これは、Ultra Light J データベースが BlackBerry のオブジェクト・ストア内に永続的に存在することを意味します。

    2. データベースへの接続を試行します。

      接続の試行に失敗した場合は、データベースを作成します。createDatabase メソッドが、開いた接続を返します。

  4. [F5] を押してアプリケーションを構築し、Device Simulator に配備します。

  5. [File] メニューから、[Load Java Program] を選択します。

  6. Ultra Light J インストール・ディレクトリの J2meRim11 フォルダを参照し、UltraLiteJ.cod ファイルを開きます。

  7. シミュレータからプログラムを実行します。

    アプリケーションがデータベースに正常に接続したことを示すステータス・メッセージが表示されます。