發表文章

Spring 中使用 Sql2O

圖片
Spring 中使用 Sql2O 什麼是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 @EnableTransactionManagement @Configuration public class config implements TransactionManagementConfigurer {     @Bean ( name = "dataSource" )     public DataSource ...

有關 控制反轉(IOC)/依賴注入(DI)

控制反轉 (IOC)/ 依賴注入 (DI) 控制反轉 (IOC , Inversion of Control) 一種設計原則 : 主要目的是降低程式之間的耦合。 相信大家應該多少都有追劇的經驗, 像是 : 如懿傳、延禧攻略、冰與火之歌、紙牌屋、 voice 、鬼怪 …. 等等的。 而大部分應該都使用一些 APP 或是追劇網站, 如 : 愛奇藝、 Netflix 、 KKTV 、 99KUBO 、 MOD(?)… 等等 為什麼 ? 因為這些網站或 APP 都已經幫你把影片準備好。 需要的 影片 ,不用自己 準備 ,而是由 APP 提供 給你。 需要的 物件,不用自己 取得,而是 介面提供 給你。 需要的 依賴實例,不用 主動建立,而是 被動接收。 舉例來說 : 今天我們要畫出一張趨勢圖給使用者,我們實作出一個 Class 然後開始使用他的方法。 class Program {     static void Main ( string [] args )     {         RunChart chart = new RunChart ();         chart . DrawGraphics ();     } } class RunChart {     public void DrawGraphics ()     {         .....     } } 那如果天才公務員,突然又跟你說 : 「不好意思,當時我自己都不知道我要什麼功能,所以現在需要新增圓餅圖可以嗎 ? 」 當然我們馬上就又生出一個版本 class Program {...