原创 設計模式七大原則之依賴倒轉

什麼是依賴倒轉原則? 依賴倒轉原則是基於這樣的理念: 相對於細節的多變性, 抽象的東西要穩定的多。以抽象爲基礎搭建的架構比以細節爲基礎的架構要穩定的多。在java中, 抽象值得是接口或抽象類,細節就是具體的實現類。其核心的思想就是

原创 設計模式的概述與類型

設計模式概述 設計模式是程序員在面對軟件工程問題所總結出的經驗,模式不是代碼,而是某類問題的通用解決方案。設計模式代表 最佳的實踐。這些解決方案是衆多軟件研發人員經過相當長的一段時間實驗和錯誤總結出來的 設計模式本身是爲了提高軟件

原创 設計模式七大原則之接口隔離

什麼是接口隔離原則? 對於類的接口依賴,客戶端不應該依賴它不需要的接口,即一個類對另一個類的依賴應該建立在最小接口上 爲什麼要設計接口隔離 (1) 降低了耦合度 (2) 可以達到代碼"瘦身效果" 案例演示 - 非接口隔離原則

原创 設計模式七大原則之單一原則

什麼是單一職責? 單一職責的規定是某一個類只做一項專門的職責。 對於類來說, 一個類應該只負責一項專有的職責,如果A類負責兩個不同的職責: 職責1,職責2.當職責1需求變更而改變A 時,可能造成職責2執行錯誤,所以需要將類A的

原创 Mybatis插入數據後返回Id

Mybatis插入數據後返回Id (1) 需要在標籤中添加如下三個屬性: 1) useGeneratedKeys=“true” // 表示使用生成的主鍵 2) keyProperty=“id” // 對應JAVA實體中的id屬

原创 BigDecimal正確的累加計數姿勢

還在爲BigDecimal累加計數爲"0"而苦惱麼? (1) 錯誤姿勢, 這樣會導致amount一直爲 “0” BigDecimal amount = BigDecimal.ZERO; while (iterator.hasNex

原创 Mybatis中Mapper.xml遍歷集合

代碼案例 <select id="selectProductByCategoryId" resultMap="BaseResultMap"> select id, category_id, product_name, subt

原创 單元測試如何避免測試數據"污染"數據庫?

單元測試如何避免測試數據"污染"數據庫? 可以在測試類上加上@Transactional註解。 測試方法在執行完相關的SQL後就會自動回滾,就不會對數據庫造成數據"污染"

原创 SpringBoot基於IDEA設置熱部署

熱部署設置 (1) 加入Maven的相關依賴 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-

原创 Mybatis打印SQL

以SpringBoot項目爲例 在application.yml配置文件中加上如下配置: mybatis: configuration: log-impl: org.apache.ibatis.logging.stdout.

原创 Redis概述

Redis概述redis是什麼redis可以做什麼redis的特點 redis是什麼 redis: remote dictionary server(遠程字典服務), 是一款開源免費用C語言編寫的遵守BSD協議 的一個高性能分佈式

原创 爲什麼需要NoSQL

MySQL存儲一些大文本的數據, 這樣就導致數據庫表和數據過於龐大, 在做數據查詢和數據恢復的時候速度就會非常的慢。 MySQL擴展性差, 操作難度較高, 在大數據量的I/O下很難更改表結構。MySQL已經無法應用到所有場景, 所以需要N

原创 CAP原理 CAP+BASE

CAP原理 CAP+BASE傳統的ACID分別是什麼CAP分別是什麼CAP的3進2什麼是CAP搭配案例BASE什麼是BASE 傳統的ACID分別是什麼 (1) A : Atomicity 原子性 (2) C : Consisten

原创 Redis安裝與啓動

Redis安裝與啓動redis安裝詳情 redis安裝詳情 (1) 官網下載redis 進入: https://redis.io/download 手動下 或使用Linux命令: wget http://download.re

原创 NoSQL概述

NoSQL概述什麼是NoSQLNoSQL能幹嘛易擴展大數據量高性能多樣靈活的數據模型傳統RDBMS vs NoSQLRDBMSNoSQL常用的NoSQL哪些場景下需要NoSQL當代互聯網環境NoSQL的實際應用阿里巴巴中文網的商品