原创 由於自定義TypeHandler導致的詭異事件:數據庫有值,但是mybatis讀出來的值消失了

目錄 一、引子 二、TypeHandler 三、具體的轉換處理過程 四、重點方法 五、本次case 六、思考 一、引子 在數據庫中,我們可以清晰的看到這個字段是否值的,但是讀出來的結果卻是 接着無意中又發現,如果name有值,則mob

原创 根據frm和ibd文件恢復數據庫表數據

現在手頭只有兩個文件:frm和ibd; frm:記錄着表結構 ibd:記錄着數據和索引,如果是獨立表空間的話 一、恢復表結構 工具:解析frm工具,如果是mac,可能會提示缺少connector,下載https://downloads.m

原创 mybatis進擊六:mybatis的對象管理體系

目錄 一、結構化數據轉換成bean 二、mybatis的對象結構 三、應用 mybatis是如何將查詢到的數據自動轉換成對象呢? 一、結構化數據轉換成bean 1、可以使用利用map 或 json字符串,橋接着轉成bean對象 2、利

原创 mybatis進擊四:原始SQL查詢

目錄 一、原始SQL查詢 二、缺點 一、原始SQL查詢 public static void main(String[] args) throws ClassNotFoundException, SQLException {

原创 mybatis進擊五:結果集如何轉換成自己的類對象

在前一章節mybatis進擊四:原始SQL查詢 ,我們寫了一段原始的sql查詢代碼片段,其中有一個問題,就是結果集的處理非常繁瑣,那麼如何可以轉換成自己的類對象呢? 首先我們先認識幾個封裝類ResultSetWrapper,Resul

原创 mybatis進擊三:核心數據管理

目錄 一、MapperScan 二、MapperScannerRegistrar 三、如何將xml與bean結合起來呢? 四、應用 在前文中,我們已經瞭解mybatis的類型系統。 在項目中,我們都是通過xml文件與mapper接口進行

原创 mybatis進擊二:jdbcType和JavaType類型轉換

大家都知道jdbc type和java type是完全不一樣的類型系統,那麼他們是怎麼轉換的?控制是在哪裏?假如我們要寫這樣的功能應該怎麼設計呢? 1、考慮寫一個map,裏面存儲所有映射關係,顯然這是非常簡單的事情 2、如果想增加擴展

原创 mybatis進擊一:動態代理實戰

一、動態代理用來幹什麼 1、動態代理可以實現對接口的裝飾,可以在一個方法執行之前和之後選擇不同的操作(對於特別多方法的接口而言,會很方便) 2、各種框架裏都使用動態代理,那麼我們也沒有理由不去學習和應用它 二、原理 java中的動態代理主

原创 學習

一、@Repository 二、@NoRepositoryBean 三、@Transactional readOnly的含義 四、@ConfigurationProperties  

原创 面試之ConcurrentHashMap

https://www.cnblogs.com/yangming1996/p/8031199.html 一、變量 //map transient volatile Node<K,V>[] table; //擴容時的臨時map,正常情況

原创 面試之limit優化

一、背景 面試:設計一個類似朋友圈列表查詢的接口 其中,對於分頁刷新問題,回答的是limit 面試官又問:如果數據量很大怎麼辦? 二、limit https://segmentfault.com/a/1190000008859706 li

原创 面試之消息隊列

目錄 一、消息隊列作用 二、選型 三、rabbitmq高可用性的保證 四、kafka的高可用解決方案 五、消息重複消費 六、rabbitmq怎麼避免消息丟失 七、kafka丟失數據 八、怎麼保證消息的順序性 來自於《石杉碼農》視頻 一、消

原创 面試之zookeeper

一、分佈式鎖 二、zookeepr使用場景 分佈式協調 配置信息管理 HA高可用 分佈式鎖

原创 面試之Dubbo

來自《石衫碼農》 一、分佈式鎖 二、分佈式事務 https://blog.csdn.net/havedream_one/article/details/88561767 三、爲什麼使用dubbo dubbo,一種rpc框架,解決了遠程機器

原创 面試準備之redis

目錄 一、redis與memcache的區別 二、redis的數據結構 三、單機數據庫 四、集羣 五、應用 一、redis與memcache的區別 redis是一種key-value內存數據庫,同類的數據庫如memcache,其與memc