Spring 中使用 Sql2O

Chung-chun Lo
Skyler Record
Published in
2 min readJan 19, 2019

什麼是Sql2O?

Sql2O是一個小型的Java資料庫,主要目的是為了讓我們在程式中對於資料庫的操作變得更佳簡單。在抓取資料時會自動的將資料映射到POJO中就如同其他ORM一樣,但是Sql2O並沒有自動生成SQL語法的功能。

為什麼要使用Sql2O?

Spring Data Jpa是在Spring Boot主推的一個ORM,相信有使用過Spring Boot的人一定對於Spring Data Jpa不是太陌生,主要是他對於Spring Boot的支持度很高,提供了許多方便的功能如 : 分頁、排序等等的。

ORM的好處是對於簡單的CURD不用自己寫SQL語法,這種做法對於資料庫系統的轉換也相當方便。

但是!!!

由於Jpa是一種標準,所以在一開始定義Entity的時候我覺得步驟相當繁瑣,對於資料表的關係定義 one-to-one、many-to-many、one-to-many等。如同一般資料庫的schema一般,這樣如果日後資料表有變動,程式內也必須相對做更改。

ORM對於複雜的查詢也相當不方便而且效能也不好,以下放上一張圖大家就可以知道Sql2O跟其他ORM的效能差異。

以上是執行完1000個Select所需要的時間,由此可見為什麼我會偏向Sql2O了,況且我個人到現在還是比較喜歡直接寫Sql語法。可能是我資歷太淺還感受不到Spring Data Jpa的好處QQ

如何使用Sql2O

因為Sql2O的Github上只有教如何在Spring Framework中使用並沒有Spring Boot的教學,加上目前Spring Boot資歷不足摸索了很久

一開始在建立專案時選擇JDBC和Web

然後再Project中新增資料庫的Config

建立Dao層

建立Entity

實作Dao

在Controller中實踐API

--

--