为了账号安全,请及时绑定邮箱和手机立即绑定

最新版本mybatis中delegate已经改名为_flddelegate了 为什么还要使用delegate

我打开RoutingStatementHandler发现

private final StatementHandler _flddelegate;

所以我在老师用delegate的地方都使用的是_flddelegate 但是却报错 如果用delegate就不报错 

不太理解 请大神指点

正在回答

2 回答

package org.apache.ibatis.executor.statement;


import java.sql.*;

import java.util.List;

import org.apache.ibatis.cursor.Cursor;

import org.apache.ibatis.executor.Executor;

import org.apache.ibatis.executor.ExecutorException;

import org.apache.ibatis.executor.parameter.ParameterHandler;

import org.apache.ibatis.mapping.*;

import org.apache.ibatis.session.ResultHandler;

import org.apache.ibatis.session.RowBounds;


// Referenced classes of package org.apache.ibatis.executor.statement:

//            StatementHandler, SimpleStatementHandler, PreparedStatementHandler, CallableStatementHandler


public class RoutingStatementHandler

    implements StatementHandler

{


    public RoutingStatementHandler(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql)

    {

        static class _cls1

        {


            static final int $SwitchMap$org$apache$ibatis$mapping$StatementType[];


            static 

            {

                $SwitchMap$org$apache$ibatis$mapping$StatementType = new int[StatementType.values().length];

                try

                {

                    $SwitchMap$org$apache$ibatis$mapping$StatementType[StatementType.STATEMENT.ordinal()] = 1;

                }

                catch(NoSuchFieldError nosuchfielderror) { }

                try

                {

                    $SwitchMap$org$apache$ibatis$mapping$StatementType[StatementType.PREPARED.ordinal()] = 2;

                }

                catch(NoSuchFieldError nosuchfielderror1) { }

                try

                {

                    $SwitchMap$org$apache$ibatis$mapping$StatementType[StatementType.CALLABLE.ordinal()] = 3;

                }

                catch(NoSuchFieldError nosuchfielderror2) { }

            }

        }


        switch(_cls1..SwitchMap.org.apache.ibatis.mapping.StatementType[ms.getStatementType().ordinal()])

        {

        case 1: // '\001'

            _flddelegate = new SimpleStatementHandler(executor, ms, parameter, rowBounds, resultHandler, boundSql);

            break;


        case 2: // '\002'

            _flddelegate = new PreparedStatementHandler(executor, ms, parameter, rowBounds, resultHandler, boundSql);

            break;


        case 3: // '\003'

            _flddelegate = new CallableStatementHandler(executor, ms, parameter, rowBounds, resultHandler, boundSql);

            break;


        default:

            throw new ExecutorException((new StringBuilder()).append("Unknown statement type: ").append(ms.getStatementType()).toString());

        }

    }


    public Statement prepare(Connection connection, Integer transactionTimeout)

        throws SQLException

    {

        return _flddelegate.prepare(connection, transactionTimeout);

    }


    public void parameterize(Statement statement)

        throws SQLException

    {

        _flddelegate.parameterize(statement);

    }


    public void batch(Statement statement)

        throws SQLException

    {

        _flddelegate.batch(statement);

    }


    public int update(Statement statement)

        throws SQLException

    {

        return _flddelegate.update(statement);

    }


    public List query(Statement statement, ResultHandler resultHandler)

        throws SQLException

    {

        return _flddelegate.query(statement, resultHandler);

    }


    public Cursor queryCursor(Statement statement)

        throws SQLException

    {

        return _flddelegate.queryCursor(statement);

    }


    public BoundSql getBoundSql()

    {

        return _flddelegate.getBoundSql();

    }


    public ParameterHandler getParameterHandler()

    {

        return _flddelegate.getParameterHandler();

    }


    private final StatementHandler _flddelegate;

}

而且名字在最后了

0 回复 有任何疑惑可以回复我~

我练习时使用的是3.4.1,该版本中还是delegate,不知道你说的新版是哪个版本?

public class RoutingStatementHandler implements StatementHandler {

  private final StatementHandler delegate;


0 回复 有任何疑惑可以回复我~
#1

Henizyang 提问者

我用的3.4.2 但的确他改名了啊= =
2017-03-02 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

最新版本mybatis中delegate已经改名为_flddelegate了 为什么还要使用delegate

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信