iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 22
0

當今天資料超多,客戶意見也超多時,資料庫中的搜尋還在用之前提過的XPath就太慢惹! 我們要用更省力的方法同時從不同物件中抓出需要的資料,這時OQL就可以派上用場。
OQL 全名 Object Query Language,根據維基百科上的解釋OQL是一種物件導向資料庫的查詢語言(Object Query Language (OQL) is a query language standard for object-oriented databases modeled after SQL.),事實上,在我們輸入XPath後,他就會自動轉換為OQL,到SQL中進行查詢動作。

例如
輸入XPath:

//UserManager.Employee[Jobtitle = "Doctor”]
(Schema: Title, Firstname, Lastname, Jobtitle)

會被轉化為OQL:

SELECT Title, Firstname, Lastname, Jobtitle
FROM UserManager.Employee
WHERE Jobtitle = "Doctor"

到SQL裡變成:

SELECT UserManager$Employee.Title, UserManager$Employee.FirstName, UserManager$Employee.LastName, UserManager$Employee.Jobtitle
FROM UserManager$Employee
WHERE Jobtitle = "Doctor"

OQL中主要的關鍵字

  • SELECT
    選擇什麼屬性(Attribute)
SELECT [ DISTINCT ] \
    { \
            * \
        | { entity_name | from_alias }.* \
        | { expression [ [ AS ] column_alias ] } [ ,...n ] \
    }
  • FROM
    從哪裡得到Data
FROM
    {
        entity_name | ( sub_oql_query )
    }
    [ [ AS ] from_alias ]

    {
        { INNER | { { LEFT | RIGHT | FULL } [ OUTER ] } } JOIN
        entity_path [ [ AS ] from_alias ]
        ON <constraint>
    } [ ,...n ]
  • WHERE
    指出在哪個位置

WHERE <constraint>

在Mendix裡使用OQL

首先,前往Mendix App Store 下載與載入OQL module
https://ithelp.ithome.com.tw/upload/images/20201006/20129530YYDJAkYVs6.png

https://ithelp.ithome.com.tw/upload/images/20201006/20129530HB87Oinl0e.png

之後可以在Project Explorer > Project > App Store modules 看到下載的檔案

在module的檔案夾上按滑鼠右鍵,選擇Add Other > Data Set,寫入需要的OQL

https://ithelp.ithome.com.tw/upload/images/20201006/20129530IarnX17j6a.png

例如:

SELECT D/Name DepartmentName, COUNT(S/id) Number
FROM UserManager.Shift S
JOIN S/UserManager.Shift_PlanningPeriod/UserManager.PlanningPeriod/UserManager.PlanningPeriod_Department/UserManager.Department D
LEFT OUTER JOIN S/UserManager.Shift_Employee/UserManager.Employee E
WHERE E/ID = NULL
GROUP BY D/Name

再來,創建一個可以執行OQL的Microflows,Activity可以在Toolbox裡找到
https://ithelp.ithome.com.tw/upload/images/20201006/20129530bpwCEolL5y.png

最後在Execute OQL上點左鍵兩下編輯內容,就可以使用了!
https://ithelp.ithome.com.tw/upload/images/20201006/201295308WRi5AfD1D.png


上一篇
數據資料這麼多!要怎麼使用阿?試用Data Hub看看(下)
下一篇
不用網路也可以用低代碼平台Mendix! Native Mobile App 頁面怎麼做?
系列文
Mendix從入門到了解,工程師和業務都要知道低代碼平台是什麼30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言