DBC的知識(shí)對(duì)于JAVA開發(fā)人員來講在簡(jiǎn)單不過的知識(shí)了。PreparedStatement的作用更是胸有成竹。我們最常見用到有倆個(gè)方法:executeQuery方法和executeUpdate方法。這倆個(gè)方法之外還有一個(gè)execute方法。只是這個(gè)方法我們很少用。但是mybatis框架就是卻用這個(gè)方法來實(shí)現(xiàn)的。不管mybatis用是哪一個(gè)方法來實(shí)現(xiàn)。有一點(diǎn)可以肯定——那就是必須得到Statement接口實(shí)例。你可以這樣子理解mybatis把如何獲得Statement接口實(shí)例做了一個(gè)完美的封裝。而這一個(gè)封裝就是上一章出現(xiàn)的StatementHandler接口。
mybatis里面實(shí)現(xiàn)StatementHandler接口有四個(gè)類。
RoutingStatementHandler類:筆者把它理解為下面三個(gè)類的代理類。
CallableStatementHandler類:對(duì)應(yīng)處理JDBC里面的CallableStatement類。
PreparedStatementHandler類:對(duì)應(yīng)處理JDBC里面的PreparedStatement類。
SimpleStatementHandler類:對(duì)應(yīng)處理JDBC里面的一般Statement接口實(shí)例(筆者也不知道JDBC是需叫他什么)。
正如上面所講的筆者把RoutingStatementHandler類理解為三個(gè)類的代理類。mybatis并沒有直接去引用后面三個(gè)類。而是通過RoutingStatementHandler類來判斷當(dāng)前到底要調(diào)用哪個(gè)類。再去執(zhí)行相關(guān)的Statement接口實(shí)例。
public StatementHandler newStatementHandler(Executor executor, MappedStatement mappedStatement, Object parameterObject, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) { StatementHandler statementHandler = new RoutingStatementHandler(executor, mappedStatement, parameterObject, rowBounds, resultHandler, boundSql); statementHandler = (StatementHandler) interceptorChain.pluginAll(statementHandler); return statementHandler; }
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26
