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

SQL Anywhere 11.0.1 (中文) » UltraLiteJ » 使用 UltraLiteJ » 开发 UltraLiteJ 应用程序

 

执行模式操作

UltraLiteJ 提供了允许您在数据库中创建表、列、索引和键的模式方法。本节介绍如何执行模式操作。

模式对象的类型
  • 表模式   Connection 接口中的方法用于访问表属性。模式通过直接使用 TableSchema 接口访问。请参见TableSchema 接口

  • 列模式   TableSchema 接口中的方法用于访问列属性。模式通过直接使用 ColumnSchema 接口访问。请参见ColumnSchema 接口

  • 索引模式   TableSchema 接口中的方法用于访问索引。模式通过直接使用 IndexSchema 接口访问。请参见IndexSchema 接口

  • 外键模式   Connection 接口中的方法用于访问外键。模式通过直接使用 ForeignKeySchema 接口访问。请参见ForeignKeySchema 接口

创建新表、列、索引和键

必须使用 API 执行所有表、列、索引和键操作,并且仅当连接的数据库处于 "模式创建" 模式时才能执行。

♦  执行模式操作
  1. 连接到 UltraLiteJ 数据库。

    本示例假定数据库已连接到 Connection 对象 conn。有关如何连接到 UltraLiteJ 数据库的详细信息,请参见访问 UltraLiteJ 数据库存储

  2. 使用以下代码将 Connection 置于 "模式创建" 模式:

    conn.schemaCreateBegin();

    "模式创建" 模式会禁止执行数据操作并将其它到数据库的连接封锁在外。

  3. 执行所有表、列、索引和键操作。

    以下过程演示如何创建一个包含名为 emp_number 的整数列的新 Employee 表。emp_number 列是 Employee 表的主索引,并同时充当引用 Security 表中的整数列 access_number 的外键。

    • 创建新表   使用 createTable 方法来定义表的名称并将结果指派给 TableSchema:
      TableSchema table_schema = conn.createTable("Employee");

      将结果指派给 TableSchema 后,您便可对该表执行更加复杂的模式操作。有关详细信息,请参见TableSchema 接口

    • 向表中添加列   使用 createColumn 方法来定义列名和类型:
      table_schema.createColumn("emp_number", Domain.INTEGER);

    • 将主索引指派到列  

      1. 使用 createPrimaryIndex 方法在表上创建新的主索引并将结果指派给 IndexSchema:

        IndexSchema index_schema = 
            table_schema.createPrimaryIndex("prime_keys");
      2. 使用 addColumn 方法来指定主索引列和排序顺序:

        index_schema.addColumn("emp_number", IndexSchema.ASCENDING);

    • 将外键指派到列   该过程假定数据库中已存在一个具有 access_number 整数列的 Security 表。如果该表不存在,则使用上面所列的过程进行创建。

      1. 使用 createForeignKey 方法来指定创建外键时所涉及的表:

        ForeignKeySchema foreign_key_schema = conn.createForeignKey(
            "Employee",
            "Security",
            "fk_emp_to_sec"
        );

        第一个参数引用要包含外键的表;第二个参数引用包含了外键所引用的列的表。

      2. 使用 addColumnReference 方法来指定创建外键时所涉及的两个列:

        foreign_key_schema.addColumnReference("emp_number", "access_number");

        第一个参数引用在第一个表中要变为外键的列名;第二个参数引用在第二个表中外键所引用的列名。

  4. 使 Connection 退出 "模式创建" 模式:

    conn.schemaCreateComplete();
另请参见