UpdateJSON.defineTable()

defineTable()メソッドは、personContacts表が存在する場合、それを削除します。表を削除すると、ストアからすべての表データが削除されます。defineTable()メソッドでは、その後、データを含まない新しい表が作成されます。

適切なDDL文を使用してストア内で表が定義されるまで、データをストアに書き込むことはできません。

このメソッドは、この付録の後半で示されているUpdateJSON.runDDL()メソッドに依存しています。

    // Drops the example table if it exists. This removes all table 
    // data and indexes. The table is then created in the store. 
    // The loadTable() method is used to populate the newly created
    // table with data.
    private void defineTable(KVStore kvstore) {
        System.out.println("Dropping table....");
        String statement = "DROP TABLE IF EXISTS personContacts";
        boolean success = runDDL(kvstore, statement);

        if (success) {
            statement =
                  "CREATE TABLE personContacts (" +
                  "account INTEGER," +
                  "person JSON," +
                  "PRIMARY KEY(account))";
            System.out.println("Creating table....");
            success = runDDL(kvstore, statement);
            if (!success) {
                System.out.println("Table creation failed.");
                System.exit(-1);
            }
        }

    }