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

SAP Sybase SQL Anywhere 16.0 (中文) » UltraLite - Java 编程 » 教程:构建 BlackBerry 应用程序 » 第 1 部分:创建新的 BlackBerry 应用程序

 

第 3 课:创建 UltraLite Java 版数据库

在本课中,将编写代码以创建并连接到 UltraLite Java 版数据库。

前提条件

本课假定您已完成前面的所有课程。 请参见第 1 课:设置新的 BlackBerry 项目

上下文和注释

用于创建新数据库的代码在名为 [DataAccess] 的单个类中定义,并从 [HomeScreen] 构造函数中调用。使用单个类可确保每次仅打开一个数据库连接。而 UltraLiteJ 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] 类。

  2. 将 [DataAccess] 类添加到项目中。

    1. 在 [Package Explorer] 窗口中,展开 [HelloBlackBerry] 并单击 [src]。

    2. 单击 [File] » [New] » [Class]。

      随即出现 [New Java Class] 窗口。

    3. 在 [Name] 字段中,键入 DataAccess

    4. 单击 [Finish]。

      DataAccess.java 文件将出现在 [Package Explorer] 窗口中项目的下方。

  3. 修改 [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] 包。创建或连接到 UltraLite Java 版数据库需要以下步骤:

    1. 定义配置。在本教程中,配置对象由 [ConfigObjectStore] 接口定义,它允许配置一个驻留在 BlackBerry 对象存储库中的永久数据库。

    2. 尝试连接到数据库。在本教程中,当连接尝试失败时,会使用 [createDatabase] 方法创建数据库。此方法随后会返回一个开放的连接。

  4. 单击 [File] » [Save]。

  5. 运行模拟器。

    在 [Package Explorer] 窗口中,单击 Application.java,然后单击 [Run] » [Run As] » [BlackBerry Simulator]。

    注意

    如果在工作区打开了多个项目,可单击 [Run] » [Run Configurations],选择 [HelloBlackBerry],然后单击 [Run]。

    [HelloBlackBerry] 项目开始编译,随后模拟器窗口出现。

    选择 Eclipse 中的 [Problems] 选项卡,确保编译过程未出差错。

  6. 从模拟器菜单单击 [File] » [Load Java Program]。

  7. 浏览至 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 程序。

  8. 从模拟器菜单单击 [Simulate] » [Set IT Policy]。

    [Set IT Policy] 窗口出现。

  9. 在 [Policy] 字段中,单击 [Allow Third Party Apps to Use Persistent Store],然后单击 [>>]。

  10. 单击 [Set],然后单击 [Close]。

  11. 启动应用程序。

    在模拟器窗口中,导航至 [Downloads],然后运行 [HelloBlackBerry] 应用程序。

    会出现一个屏幕,显示 [Hello BlackBerry] 标题栏和 [Status: Connected] 文本,表示应用程序已成功连接到 UltraLite Java 版数据库。

  12. 停止模拟器。

    在模拟器窗口中,单击 [File] » [Exit]。

结果

应用程序在模拟器中运行,而且代码将创建 UltraLite Java 版数据库。

下一个

前进至第 4 课:在数据库中创建表

 另请参见