DBC的知識(shí)對(duì)于JAVA開(kāi)發(fā)人員來(lái)講在簡(jiǎn)單不過(guò)的知識(shí)了。PreparedStatement的作用更是胸有成竹。我們最常見(jiàn)用到有倆個(gè)方法:executeQuery方法和executeUpdate方法。這倆個(gè)方法之外還有一個(gè)execute方法。只是這個(gè)方法我們很少用。但是mybatis框架就是卻用這個(gè)方法來(lái)實(shí)現(xiàn)的。不管mybatis用是哪一個(gè)方法來(lái)實(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并沒(méi)有直接去引用后面三個(gè)類。而是通過(guò)RoutingStatementHandler類來(lái)判斷當(dāng)前到底要調(diào)用哪個(gè)類。再去執(zhí)行相關(guān)的Statement接口實(shí)例。

Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),移動(dòng)開(kāi)發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

 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;
  }

Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),移動(dòng)開(kāi)發(fā)培訓(xùn),云培訓(xùn)培訓(xùn)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式