AppML 參考 - 資料庫
"database" 屬性
"database" 屬性將資料庫定義為資料來源。它具有以下子屬性:
元素 | 描述 |
---|---|
"connection" | 資料庫連線的名稱 |
"execute" | 在檢索資料之前要執行的 SQL 語句陣列(可選) |
"keyfield" | 主表的鍵欄位(可選) |
"maintable" | 此應用程式的主表(可選) |
"orderby" | 應用程式的固定 SQL orderby 子句(可選) |
"sql" | 用於檢索資料的 SQL 語句 |
來自資料庫的資料
此模型從 SQL 資料庫的 Customer 表中提取包含 Customer、City 和 Country 的記錄。
示例
{
"database": {
"connection": "mysql",
"sql" : "SELECT CustomerName, City, Country FROM Customers",
"orderby" : "CustomerName"
}
}
過濾限制
要允許使用者過濾資料,可以在模型中新增過濾資訊。
"filteritems" : [
{"item" : "CustomerName", "label" : "客戶"},
{"item" : "城市"},
{"item" : "Country"}]
排序限制
要允許使用者對資料進行排序,可以在模型中新增排序資訊。
"sortitems" : [
{"item" : "CustomerName", "label" : "客戶"},
{"item" : "城市"},
{"item" : "Country"}]
更新限制
要允許使用者更新資料,可以在模型中包含更新資訊:
示例
"updateItems" : [
{"item" : "CustomerName"},
{"item" : "Address"},
{"item" : "PostalCode"},
{"item" : "城市"},
{"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 語句,因此你可以利用此功能在需要時建立資料庫。
Model
{
"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)"
]
}}
非常適合快速原型開發!