關連式資料庫管理系統(RDBMS)存在已久,有嚴謹的資料結構檢查能力,到現在還是非常好用。NoSQL是網路迅速發展時代下的後起之秀,通常捨棄那些資料結構檢查來提高效能,也漸漸成為各種應用的優先選擇。本篇文章也可以看作是「我該使用傳統關連式資料庫還是文件式NoSQL資料庫?」,我會介紹兩者功能的差異、授權方式的考量、我自己的實務應用方式。
資料庫教學2:我該使用MariaDB還是MongoDB? #MySQL #MariaDB
MongoDB的Transaction教學,讓MongoDB不再只能做「假交易」
早期的MongoDB沒辦法做Transaction,必須用要使用db.collection.findAndModify()來進行尋找合併修改的元子操作,或是透過Two Phase Commit來模擬交易行為。好消息是從MongoDB 4.0開始增加了Transaction機制,MongoDB 5.0、6.0又更完善了此功能。本文教大家如何在透過JavaScript來使用真正的MongoDB Transaction。
Java的Arrays.asList()與List.of()差別
Arrays全名是java.util.Arrays,是自Java 1.2就有的API。而List(java.util.List)雖然也是Java 1.2就開始有的API,其中的List.of()卻是Java 9才新增的方法。Arrays.asList()與List.of()兩種都是快速建立List物件的方法,但使用上有不太一樣的地方。本文講解兩種List物件的差異,以及為什麼會有這兩種方式產生串列。
使用樹莓派監測控管UPS設備/Network UPS Tools/Linux
Network UPS Tools(NUT)可以連接各種UPS電源設備,除了Linux之外也有Windows與macOS版本,還是主從式架構可以讓多台電腦共享UPS資訊。本文使用樹莓派連結UPS,讓樹莓派記錄是否發生斷電、電壓是否過高過低、電池是否有問題、定時進行放電測試等各種實用功能。
解決HTTP Header Content-Disposition檔案名稱不能輸入中文、日文、韓文等Unicode字元
問題 有時候我們會透過網頁後端程式直接輸出檔案,因此需要在HTTP Response Header裡面添加Content […]
資料庫教學3-2:Data Type 資料型態 #MySQL #MariaDB
從第一章看過來的各位可能已經等不及要操控資料庫了,但是先等等,必須先了解資料型態才能在建立資料表的時候知道我們需要什麼樣 […]
資料庫教學3-1:資料庫與資料表介紹 #MySQL #MariaDB
為了讓還沒有概念的人可以理解資料庫的概念,本文會以Excel來類比資料庫,這只是為了讓新手可以快速想像出資料的模樣,但資 […]
資料庫教學1:資料庫系統介紹 #MySQL #MariaDB
資料庫的用途 資料庫是一堆結構化資料的集合,由資料庫管理系統來儲存、修改、管理、查詢。通常這些資料是結構明確的數字、文字 […]
Java 8的日期時間API介紹與各種常見操作範例
在Java 8推出新的日期與時間API之前可能會使用Long型態直接紀錄Unix Timestamp,或是使用java.util.Date來紀錄一個日期時間。從Java 8開始推出更方便的java.time系列API,可以只記錄日期、只記錄時間、紀錄一段時間長度、處理各種時區問題。本文章將介紹這些好用的API,以及提供各種操作範例。
Spring Data JPA與Hibernate報錯failed to lazily initialize a collection
在Java使用Spring或是Hibernate時,使用OneToMany、ManyToMany來標注Entity Class非常方便,可以輕鬆處理外來鍵與外來資料表的問題。但偶爾使用getXXX()方法要讀取外來資料表的時候,可能會遇到Hibernate報錯說「org.hibernate.LazyInitializationException: failed to lazily initialize a collection」,本篇文章將解析為什麼會發生這種問題,以及要怎麼解決它。