"database" プロパティは、データソースとしてデータベースを定義します。これには、次のサブプロパティがあります:
| 属性 | 説明 |
|---|---|
| "connection" | データベースの接続名 |
| "execute" | データ検索の前に実行される SQL 文の配列(オプション) |
| "keyfield" | メインテーブルのキーフィールド(オプション) |
| "maintable" | このアプリケーションのメインテーブル(オプション) |
| "orderby" | アプリケーションの固定の SQL orderby 句(オプション) |
| "sql" | データを検索するための SQL 文 |
このモデルは、SQL データベースの Customer テーブルから Customer、City、Country を含むレコードを取得(fetch)します:
{
"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 に定義されています:
<?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"
}
]
}
![]() |
configuration ファイルには、多くのデータベース接続を含めることができます。 |
|---|
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)"
]
}}
ラピッドプロトタイピング(訳注:試作の手法)に最適です!