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

SQL Anywhere 12.0.0 (中文) » UltraLiteJ » 使用 UltraLiteJ » 教程:构建用于 BlackBerry 的 UltraLiteJ 应用程序 » 第 1 部分:为 BlackBerry 创建新的 BlackBerry UltraLiteJ 应用程序

 

第 3 课:创建 UltraLiteJ 数据库

在本课中,您将编写代码来创建并连接 UltraLiteJ 数据库。用于创建新数据库的代码在名为 DataAccess 的单个类中定义,并从 HomeScreen 构造函数中调用。使用单个类可确保每次仅打开一个数据库连接。而 UltraLiteJ 支持多个连接,它是使用单个连接的常见设计模式。

  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(true);
                _statusLabel.setText("Status: Connected");
            }
            catch( Exception ex)
            {
                _statusLabel.setText("Exception: " + ex.toString() );
            }        
        }
        private LabelField _statusLabel;
        private DataAccess _da;
    }
  2. 在 HelloBlackBerry 项目中创建名为 myapp\DataAccess.java 的文件。

  3. 提供确保单个数据库连接的方法 getDataAccess。



    package myapp;
    
    import com.ianywhere.ultralitej12.*;
    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 );
                    // _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 包。创建或连接到数据库的步骤如下:

    1. 定义配置。在本示例中,配置为 ConfigObjectStore 配置对象,这意味着 UltraLiteJ 数据库保存在 BlackBerry 对象存储库中。

    2. 尝试连接到数据库。

      如果连接尝试失败,则创建数据库。createDatabase 方法随后返回一个已打开的连接。

  4. 按下 F5 构建应用程序并将其部署到设备模拟器。

  5. 从 [File] 菜单中选择 [Load Java Program]。

  6. 浏览至 UltraLiteJ 安装目录的 BlackBerry4.2 文件夹,然后打开 UltraLiteJ12.cod 文件。

  7. 从模拟器运行程序。

    您应该会看到一条状态消息,它指示应用程序已成功连接到数据库。