大家好!這三十天,我們這系列文章會介紹 Kotlin Exposed 這個框架,並且和大家談怎麼利用這個框架與資料庫進行串接。
沒錯!雖然很多人認識 Kotlin,都是因為在 Android 的開發上,才聽說這個程式語言,不過作為一個 JVM-based 的語言,其實可以說 Java 能做到的事情,Kotlin 都有辦法做到,串接資料庫自然也不例外。
不過,要串接資料庫時,我們當然會希望不要重新發明輪子,手動的去做許多底層的操作。這時候,Kotlin Exposed 框架就是一個很好的選擇了!
Exposed 是一個 Kotlin 的 ORM framework,基於 JDBC driver 上開發,由 JetBrains 官方開發與維護。
專案的 github 連接在此
如前面所說,這個框架的目的,主要是協助我們在 Kotlin 專案裏面串接資料庫。目前這個框架已經支援很多正式使用的資料庫,比方說:
那麼,Exposed 框架有什麼好處呢?
首先,這個框架是純 Kotlin 語言,所以不用擔心同一專案需要多個語言維護,導致提升開發以及維護的難度。
得益於 Kotlin 的語法,這個框架使用起來的感覺非常簡單易懂。不像部分語言受限於特性,無法完整的以物件導向方式撰寫資料庫的串接邏輯。
個人認為,比起許多語言串接資料庫的方式開發上,要好學以及容易開發很多。
另外很重要的一點是,這個框架是 open source 的,使用 Apache License 2.0,所以不用擔心使用時的授權或者費用等問題。
Kotlin Exposed 框架的吉祥物,是墨魚(cuttlefish),屬於墨魚目的動物。
雖然墨魚時常會和屬於管魷目的魷魚或者鎖管搞混,不過我們可以看到,Exposed 框架的 logo 上面,吉祥物的身體上沒有三角形的肉鰭,所以可以確定是墨魚沒錯。
至於為什麼吉祥物是墨魚呢?官方的說明是這樣的:
Our official mascot is Cuttlefish, which is best known for its outstanding mimicry abilities letting it blend seamlessly in any environment. Just like our mascot, Exposed can mimic a variety of database engines and help you build database applications without hard dependencies on any specific database engine, and switch between them with very little or no changes in your code.
簡單的說,Exposed 這個框架,就像墨魚一樣的善於擬態,可以隨著使用資料庫環境的不同,任意的改變自己的型態,以搭配不同的資料庫引擎。
藉由使用 Exposed 框架,可以避免程式和資料庫有很高的相依性,進而避免切換資料庫時需要對程式碼進行大幅的改寫。
介紹完了之後,希望這三十天大家可以一起來好好學習 Kotlin Exposed 這個框架~