アプリMLリファレンス-データベース


「データベース」プロパティ

「データベース」プロパティは、データベースをデータソースとして定義します。次のサブプロパティがあります。

Element Description
"connection" The name of a database connection
"execute" Array of SQL statements to be executed before data retrieval (optional)
"keyfield" The key field for the main table (optional)
"maintable" The main table for this application (optional)
"orderby" A fixed SQL orderby clause for the application (optional)
"sql" The SQL statement for retrieving data

データベースからのデータ

このモデルは、SQLデータベースのCustomerテーブルからCustomer、City、およびCountryを含むレコードをフェッチします。

{
"database": {
    "connection": "mysql",
    "sql"       : "SELECT CustomerName, City, Country FROM Customers",
    "orderby"   : "CustomerName"
}
}

フィルタの制限

ユーザーがデータをフィルタリングできるようにするには、モデルにフィルター情報を追加します。

"filteritems" : [
    {"item" : "CustomerName", "label" : "Customer"},
    {"item" : "City"},
    {"item" : "Country"}]

並べ替えの制限

ユーザーがデータを並べ替えることができるように、モデルに並べ替え情報を追加できます。

"sortitems" : [
    {"item" : "CustomerName", "label" : "Customer"},
    {"item" : "City"},
    {"item" : "Country"}]

更新の制限

ユーザーがデータを更新できるようにするには、モデルに更新情報を含めることができます。 

"updateItems" : [
    {"item" : "CustomerName"},
    {"item" : "Address"},
    {"item" : "PostalCode"},
    {"item" : "City"},
    {"item" : "Country"}]

デフォルトでは、AppMLを使用すると、モデルで指定されているデータのみをフィルタリング、並べ替え、または更新できます。


データベース接続

データベース接続はappml_config.phpで定義されています:

appml_config.php

<?php echo("Access Forbidden");exit();?>
{
"dateformat" : "yyyy-mm-dd",
"databases": [
    {
    "connection" : "mysql",
    "host"       : "127.0.0.1:3306",
    "dbname"     : "Northwind",
    "username"   : "myUserId",
    "password"   : "myPassword"
    },
    {
    "connection" : "googleDB",
    "host"       : "192.168.1.1:3306",
    "dbname"     : "Northwind",
    "username"   : "myUserId",
    "password"   : "myPassword"
    },
    {
    "connection" : "amazonDB",
    "host"       : "mydbinstance.amazon.com:3306",
    "dbname"     : "Northwind",
    "username"   : "myUserId",
    "password"   : "myPassword"
    },
    {
    "connection" : "azureDB",
    "host"       : "azure.cloudapp.net",
    "dbname"     : "Northwind",
    "username"   : "myUserId",
    "password"   : "myPassword"
    }
]
}

構成ファイルには、多くのデータベース接続を含めることができます。


データベースの作成

AppMLでは、アプリケーションを起動する前にSQLステートメントを実行できるため、必要に応じてこれを使用してデータベースを作成できます。

モデル

{
"database" : {
"connection" : "myCDs",
"execute" : [
"DROP TABLE IF EXISTS CD_Catalog",
"CREATE TABLE IF NOT EXISTS CD_Catalog (CDID INT NOT NULL AUTO_INCREMENT,PRIMARY KEY (CDID),Title NVARCHAR(255),Artist NVARCHAR(255),Country NVARCHAR(255),Price NUMBER)"
]
}}

ラピッドプロトタイピングに最適!