原创 ShardingJdbc2.X學習總結系列(二):使用

1.maven 引入依賴jar包 <dependency> <groupId>io.shardingjdbc</groupId> <artifactId>sharding-jdbc-core</artifactId>

原创 ShardingJdbc2.X學習總結系列(一):介紹

1.簡介 Sharding-JDBC是噹噹應用框架ddframe中,從關係型數據庫模塊dd-rdb中分離出來的數據庫水平分片框架,實現透明化數據庫分庫分表訪問。           它直接封裝JDBC協議,可以理解爲增強版的JDBC驅動,

原创 ShardingJdbc2.X學習總結系列(四):源碼解析—SQL解析

1.解析包整體介紹 1.5.0M1版本以後採用的是自研的解析引擎,支持join、aggregation、order by、group by、limit、or;目前不支持union、部分子查詢、函數內分片等不太應在分片場景中出現的SQL解析

原创 ShardingJdbc2.X學習總結系列(三):源碼解析—整體流程

整體介紹條件: 數據庫爲mysql   ORM爲mybatis mybatis執行順序爲 : 1.獲取DefaultSqlSession 2.生成Executor 3.獲取StatementHandler 4.調用StatementHan

原创 Mybatis學習系列(十二):PageHelper分頁插件

由於mybatis原生的分頁是在內存裏面進行的,導致效率很低,但是我們在生產項目中有很多的分頁需求,這個時候PageHelper分頁插件就誕生了。PageHelper主要是通過插件攔截鏈實現的。 我們知道在創建StatementHandl

原创 Mybatis學習系列(九):select的執行

我們先看一下MapperMethod中有哪些select查詢,都是如何實現的 case SELECT: //1.返回void if (method.returnsVoid() && method.hasR

原创 Mybatis學習系列(五):SqlSession

前面我們講完了SqlSessionFactory的初始化,這裏我們主要看一下如何通過SqlSessionFactory獲取SqlSession對象的,在獲取SqlSession的同時,又做了哪些操作 在前面我們瞭解到最終獲取的SqlSes

原创 Mybatis學習系列(七):Mapper執行

第六篇文章我們拿到了Mapper的一個代理對象,我們知道代理對象的執行其實是交給了InvocationHandler來處理的,也就是我們的MapperProxy對象。我們看一下invoke方法: public Object invoke

原创 Mybatis學習系列(四):源碼解析—解析mapper

上一篇主要是介紹了mybatis-config.xml配置文件的解析,裏面只是簡單的列了一下mapper的解析,由於這個是比較核心和重要的,這裏我們將進行詳細的解析: private void mapperElement(XNode p

原创 Mybatis學習系列(六):獲取對應的Mapper

第五篇文章中,我們獲取到了SqlSession對象,然後我們在執行的時候是通過獲取Mapper,然後通過執行mapper的方法來獲取我們需要的數據,這篇我們就看一下這個通過SqlSession獲取Mapper的過程。 Default

原创 Mybatis學習系列(十):緩存

mybatis的緩存主要是分爲兩種:一級緩存和二級緩存: 一級緩存:一直開啓,不能關閉,默認是session級別的,但是可以設置成statement級別。 session級別:表現爲---MyBatis執行SQL語句之後,這條語句就是被

原创 Redis學習系列-開篇

Redis是什麼? Redis是一個開源的使用ANSI c語言編寫的遠程的基於內存的高性能的key-value存儲系統(區別於MySQL的二維表格的形式存儲)。 特點/優勢 性能高 :基於內存讀寫,讀的速度是110000次/s,

原创 Redis學習系列-redisServer

Redis服務器(redisServer)內部結構 Redis的內部結構是一個RedisServer對象,裏面包含了整個redis運行的各種組件(數據庫,客戶端,持久化,主從,哨兵,集羣),我們先看一下源碼: struct red

原创 ThreadLocal

  ThreadLocal:看到這個單詞,大家應該就猜到了,跟線程有關係。在講之前我們先來看一段簡單的代碼: public class ThreadLocalTest { public static void main(Str

原创 深入理解Spring之擴展接口

Spring 的設計中留給了我們大量的擴展接口供開發者去自定義自己的功能,其中AOP 就是在 Spring 預留的擴展接口中實現的,所以說只要遵守 Spring 對擴展接口的約定,那麼就能實現自己想要的功能。那麼我們具體來看一下都有哪些擴