發表文章

目前顯示的是 3月, 2023的文章

程式設計補完計畫(一): mybatis

程式設計補完計畫(一): mybatis 因為一些原因我發現自己一直以來都只有在寫程式,沒有認真想過為甚麼要用這個 Lib 或框架。 因此想透過這個系列重新審視自己身邊常用的 Lib。 第一集我想要先聊 Mybatis,基本上所有跟 ORM 有關的開發我都會用 Mybatis 去處理,但沒有認真探討過為甚麼要用和甚麼時候用。 那就先開始吧。 簡介(來自 wiki) MyBatis 不是物件與資料庫表關聯,而是將Java方法與SQL語句關聯。MyBatis允許使用者充分利用資料庫的各種功能,例如儲存程序、視圖、各種複雜的查詢以及某資料庫的專有特性。如果要對遺留資料庫、不規範的資料庫進行操作,或者要完全控制SQL的執行,MyBatis是一個不錯的選擇。 優點: 先將優點列出之後一項一項說明 sql 與 Java 程式碼分離 MyBatis支持許多高級映射和存儲過程,使得更複雜的數據庫操作更容易。 MyBatis支持基於Spring、Guice等框架的注入,這意味著可以更輕鬆地集成到現有的應用程序中。 由於 Mybatis 需要直接寫 sql,因此可以做更細和更複雜的 sql 操作。 提供緩存機制,在搜尋資料時可以提高效率。 sql 與 Java 程式碼分離 MyBatis 可以將 sql 寫在另外的 xml 檔案中,也可以透過 annotation 寫 sql ,因此不會看到還先用 String 組成 sql 後執行的情況發生。 MyBatis支持許多高級映射和存儲過程,使得更複雜的數據庫操作更容易。 MyBatis 在 xml 中提供了,if, where 等語法,讓 sql 在組合時會更簡單,例如透過 <if> 判斷特定變數是否為 null ,如果是 null 就不要加入 set 裡面。 <where> 和 <if> 搭配的話就可以很簡單的組合出 where 條件...