Example usage for org.apache.ibatis.scripting.defaults RawSqlSource RawSqlSource

List of usage examples for org.apache.ibatis.scripting.defaults RawSqlSource RawSqlSource

Introduction

In this page you can find the example usage for org.apache.ibatis.scripting.defaults RawSqlSource RawSqlSource.

Prototype

public RawSqlSource(Configuration configuration, String sql, Class<?> parameterType) 

Source Link

Usage

From source file:cn.org.awcp.core.mybatis.mapper.MapperTemplate.java

License:Open Source License

/**
 * SelectKey - ?mysqlOracle?/*from  ww w  .jav  a 2 s. c om*/
 * 
 * @param ms
 * @param column
 */
protected void newSelectKeyMappedStatement(MappedStatement ms, EntityHelper.EntityColumn column) {
    String keyId = ms.getId() + SelectKeyGenerator.SELECT_KEY_SUFFIX;
    if (ms.getConfiguration().hasKeyGenerator(keyId)) {
        return;
    }
    Class<?> entityClass = getSelectReturnType(ms);
    // defaults
    Configuration configuration = ms.getConfiguration();
    KeyGenerator keyGenerator = null;
    Boolean executeBefore = getBEFORE();
    String IDENTITY = (column.getGenerator() == null || column.getGenerator().equals("")) ? getIDENTITY()
            : column.getGenerator();
    if (IDENTITY.equalsIgnoreCase("JDBC")) {
        keyGenerator = new Jdbc3KeyGenerator();
    } else {
        SqlSource sqlSource = new RawSqlSource(configuration, IDENTITY, entityClass);

        MappedStatement.Builder statementBuilder = new MappedStatement.Builder(configuration, keyId, sqlSource,
                SqlCommandType.SELECT);
        statementBuilder.resource(ms.getResource());
        statementBuilder.fetchSize(null);
        statementBuilder.statementType(StatementType.STATEMENT);
        statementBuilder.keyGenerator(new NoKeyGenerator());
        statementBuilder.keyProperty(column.getProperty());
        statementBuilder.keyColumn(null);
        statementBuilder.databaseId(null);
        statementBuilder.lang(configuration.getDefaultScriptingLanuageInstance());
        statementBuilder.resultOrdered(false);
        statementBuilder.resulSets(null);
        statementBuilder.timeout(configuration.getDefaultStatementTimeout());

        List<ParameterMapping> parameterMappings = new ArrayList<ParameterMapping>();
        ParameterMap.Builder inlineParameterMapBuilder = new ParameterMap.Builder(configuration,
                statementBuilder.id() + "-Inline", entityClass, parameterMappings);
        statementBuilder.parameterMap(inlineParameterMapBuilder.build());

        List<ResultMap> resultMaps = new ArrayList<ResultMap>();
        ResultMap.Builder inlineResultMapBuilder = new ResultMap.Builder(configuration,
                statementBuilder.id() + "-Inline", column.getJavaType(), new ArrayList<ResultMapping>(), null);
        resultMaps.add(inlineResultMapBuilder.build());
        statementBuilder.resultMaps(resultMaps);
        statementBuilder.resultSetType(null);

        statementBuilder.flushCacheRequired(false);
        statementBuilder.useCache(false);
        statementBuilder.cache(null);

        MappedStatement statement = statementBuilder.build();
        configuration.addMappedStatement(statement);

        MappedStatement keyStatement = configuration.getMappedStatement(keyId, false);
        keyGenerator = new SelectKeyGenerator(keyStatement, executeBefore);
        configuration.addKeyGenerator(keyId, keyGenerator);
    }
    // keyGenerator
    try {
        MetaObject msObject = forObject(ms);
        msObject.setValue("keyGenerator", keyGenerator);
        msObject.setValue("keyProperties", new String[] { column.getProperty() });
    } catch (Exception e) {
        // ignore
    }
}

From source file:com.baomidou.mybatisplus.mapper.AutoSqlInjector.java

License:Apache License

/**
 * <p>//  www. j av a 2s.  c o  m
 *  SQL ?
 * </p>
 *
 * @param batch       ???
 * @param mapperClass
 * @param modelClass
 * @param table
 */
protected void injectSelectByIdSql(boolean batch, Class<?> mapperClass, Class<?> modelClass, TableInfo table) {
    SqlMethod sqlMethod = SqlMethod.SELECT_BY_ID;
    SqlSource sqlSource;
    if (batch) {
        sqlMethod = SqlMethod.SELECT_BATCH_BY_IDS;
        StringBuilder ids = new StringBuilder();
        ids.append("\n<foreach item=\"item\" index=\"index\" collection=\"list\" separator=\",\">");
        ids.append("#{item}");
        ids.append("\n</foreach>");
        sqlSource = languageDriver.createSqlSource(configuration, String.format(sqlMethod.getSql(),
                sqlSelectColumns(table, false), table.getTableName(), table.getKeyColumn(), ids.toString()),
                modelClass);
    } else {
        sqlSource = new RawSqlSource(configuration,
                String.format(sqlMethod.getSql(), sqlSelectColumns(table, false), table.getTableName(),
                        table.getKeyColumn(), table.getKeyProperty()),
                Object.class);
    }
    this.addSelectMappedStatement(mapperClass, sqlMethod.getMethod(), sqlSource, modelClass, table);
}

From source file:com.baomidou.mybatisplus.mapper.LogicSqlInjector.java

License:Apache License

/**
 * <p>//from w  ww .jav a  2  s.  c  o m
 *  SQL ?
 * </p>
 *
 * @param batch
 *            ???
 * @param mapperClass
 * @param modelClass
 * @param table
 */
protected void injectSelectByIdSql(boolean batch, Class<?> mapperClass, Class<?> modelClass, TableInfo table) {
    if (table.isLogicDelete()) {
        SqlMethod sqlMethod = SqlMethod.LOGIC_SELECT_BY_ID;
        SqlSource sqlSource;
        if (batch) {
            sqlMethod = SqlMethod.LOGIC_SELECT_BATCH_BY_IDS;
            StringBuilder ids = new StringBuilder();
            ids.append("\n<foreach item=\"item\" index=\"index\" collection=\"list\" separator=\",\">");
            ids.append("#{item}");
            ids.append("\n</foreach>");
            sqlSource = languageDriver.createSqlSource(configuration,
                    String.format(sqlMethod.getSql(), sqlSelectColumns(table, false), table.getTableName(),
                            table.getKeyColumn(), ids.toString(), getLogicDeleteSql(table)),
                    modelClass);
        } else {
            sqlSource = new RawSqlSource(configuration,
                    String.format(sqlMethod.getSql(), sqlSelectColumns(table, false), table.getTableName(),
                            table.getKeyColumn(), table.getKeyProperty(), getLogicDeleteSql(table)),
                    Object.class);
        }
        this.addSelectMappedStatement(mapperClass, sqlMethod.getMethod(), sqlSource, modelClass, table);
    } else {
        // 
        super.injectSelectByIdSql(batch, mapperClass, modelClass, table);
    }
}

From source file:com.github.abel533.mapper.MapperTemplate.java

License:Open Source License

/**
 * SelectKey - ?mysqlOracle?//from ww  w .j a  v a  2  s .  c o  m
 *
 * @param ms
 * @param column
 */
protected void newSelectKeyMappedStatement(MappedStatement ms, EntityHelper.EntityColumn column) {
    String keyId = ms.getId() + SelectKeyGenerator.SELECT_KEY_SUFFIX;
    if (ms.getConfiguration().hasKeyGenerator(keyId)) {
        return;
    }
    Class<?> entityClass = getSelectReturnType(ms);
    //defaults
    Configuration configuration = ms.getConfiguration();
    KeyGenerator keyGenerator = new NoKeyGenerator();
    Boolean executeBefore = getBEFORE();
    String IDENTITY = (column.getGenerator() == null || column.getGenerator().equals("")) ? getIDENTITY()
            : column.getGenerator();
    SqlSource sqlSource = new RawSqlSource(configuration, IDENTITY, entityClass);

    MappedStatement.Builder statementBuilder = new MappedStatement.Builder(configuration, keyId, sqlSource,
            SqlCommandType.SELECT);
    statementBuilder.resource(ms.getResource());
    statementBuilder.fetchSize(null);
    statementBuilder.statementType(StatementType.STATEMENT);
    statementBuilder.keyGenerator(keyGenerator);
    statementBuilder.keyProperty(column.getProperty());
    statementBuilder.keyColumn(null);
    statementBuilder.databaseId(null);
    statementBuilder.lang(configuration.getDefaultScriptingLanuageInstance());
    statementBuilder.resultOrdered(false);
    statementBuilder.resulSets(null);
    statementBuilder.timeout(configuration.getDefaultStatementTimeout());

    List<ParameterMapping> parameterMappings = new ArrayList<ParameterMapping>();
    ParameterMap.Builder inlineParameterMapBuilder = new ParameterMap.Builder(configuration,
            statementBuilder.id() + "-Inline", entityClass, parameterMappings);
    statementBuilder.parameterMap(inlineParameterMapBuilder.build());

    List<ResultMap> resultMaps = new ArrayList<ResultMap>();
    ResultMap.Builder inlineResultMapBuilder = new ResultMap.Builder(configuration,
            statementBuilder.id() + "-Inline", int.class, new ArrayList<ResultMapping>(), null);
    resultMaps.add(inlineResultMapBuilder.build());
    statementBuilder.resultMaps(resultMaps);
    statementBuilder.resultSetType(null);

    statementBuilder.flushCacheRequired(false);
    statementBuilder.useCache(false);
    statementBuilder.cache(null);

    MappedStatement statement = statementBuilder.build();
    configuration.addMappedStatement(statement);

    MappedStatement keyStatement = configuration.getMappedStatement(keyId, false);
    configuration.addKeyGenerator(keyId, new SelectKeyGenerator(keyStatement, executeBefore));
    //keyGenerator
    try {
        MetaObject msObject = forObject(ms);
        msObject.setValue("keyGenerator", configuration.getKeyGenerator(keyId));
    } catch (Exception e) {
        //ignore
    }
}

From source file:com.github.abel533.mapperhelper.MapperTemplate.java

License:Open Source License

/**
 * SelectKey - ?mysqlOracle?/*from  w w  w  .j a  v a 2 s .com*/
 *
 * @param ms
 * @param column
 */
protected void newSelectKeyMappedStatement(MappedStatement ms, EntityHelper.EntityColumn column) {
    String keyId = ms.getId() + SelectKeyGenerator.SELECT_KEY_SUFFIX;
    if (ms.getConfiguration().hasKeyGenerator(keyId)) {
        return;
    }
    Class<?> entityClass = getSelectReturnType(ms);
    //defaults
    Configuration configuration = ms.getConfiguration();
    KeyGenerator keyGenerator = null;
    Boolean executeBefore = getBEFORE();
    String IDENTITY = (column.getGenerator() == null || column.getGenerator().equals("")) ? getIDENTITY()
            : column.getGenerator();
    if (IDENTITY.equalsIgnoreCase("JDBC")) {
        keyGenerator = new Jdbc3KeyGenerator();
    } else {
        SqlSource sqlSource = new RawSqlSource(configuration, IDENTITY, entityClass);

        MappedStatement.Builder statementBuilder = new MappedStatement.Builder(configuration, keyId, sqlSource,
                SqlCommandType.SELECT);
        statementBuilder.resource(ms.getResource());
        statementBuilder.fetchSize(null);
        statementBuilder.statementType(StatementType.STATEMENT);
        statementBuilder.keyGenerator(new NoKeyGenerator());
        statementBuilder.keyProperty(column.getProperty());
        statementBuilder.keyColumn(null);
        statementBuilder.databaseId(null);
        statementBuilder.lang(configuration.getDefaultScriptingLanuageInstance());
        statementBuilder.resultOrdered(false);
        statementBuilder.resulSets(null);
        statementBuilder.timeout(configuration.getDefaultStatementTimeout());

        List<ParameterMapping> parameterMappings = new ArrayList<ParameterMapping>();
        ParameterMap.Builder inlineParameterMapBuilder = new ParameterMap.Builder(configuration,
                statementBuilder.id() + "-Inline", entityClass, parameterMappings);
        statementBuilder.parameterMap(inlineParameterMapBuilder.build());

        List<ResultMap> resultMaps = new ArrayList<ResultMap>();
        ResultMap.Builder inlineResultMapBuilder = new ResultMap.Builder(configuration,
                statementBuilder.id() + "-Inline", column.getJavaType(), new ArrayList<ResultMapping>(), null);
        resultMaps.add(inlineResultMapBuilder.build());
        statementBuilder.resultMaps(resultMaps);
        statementBuilder.resultSetType(null);

        statementBuilder.flushCacheRequired(false);
        statementBuilder.useCache(false);
        statementBuilder.cache(null);

        MappedStatement statement = statementBuilder.build();
        configuration.addMappedStatement(statement);

        MappedStatement keyStatement = configuration.getMappedStatement(keyId, false);
        keyGenerator = new SelectKeyGenerator(keyStatement, executeBefore);
        configuration.addKeyGenerator(keyId, keyGenerator);
    }
    //keyGenerator
    try {
        MetaObject msObject = forObject(ms);
        msObject.setValue("keyGenerator", keyGenerator);
        msObject.setValue("keyProperties", new String[] { column.getProperty() });
    } catch (Exception e) {
        //ignore
    }
}

From source file:com.hand.hap.mybatis.mapperhelper.MapperTemplate.java

License:Open Source License

/**
 * SelectKey//w w  w .j ava 2  s . c  o m
 *
 * @param ms
 * @param column
 */
protected void newSelectKeyMappedStatement(MappedStatement ms, EntityColumn column) {
    String keyId = ms.getId() + SelectKeyGenerator.SELECT_KEY_SUFFIX;
    if (ms.getConfiguration().hasKeyGenerator(keyId)) {
        return;
    }
    Class<?> entityClass = getEntityClass(ms);
    //defaults
    Configuration configuration = ms.getConfiguration();
    KeyGenerator keyGenerator;
    Boolean executeBefore = isBEFORE();
    // mod by jessen
    String generator = column.getGenerator() == null ? null : column.getGenerator();
    String IDENTITY = ("IDENTITY".equals(generator) || StringUtil.isEmpty(generator)) ? getIDENTITY()
            : generator;
    if (IDENTITY.equalsIgnoreCase("JDBC")) {
        keyGenerator = new Jdbc3KeyGenerator();
    } else {
        if ("SEQUENCE".equalsIgnoreCase(IDENTITY)) {
            // add by jessen, sql for selectKey
            IDENTITY = "SELECT " + getSeqNextVal(column) + " FROM DUAL";
        }
        SqlSource sqlSource = new RawSqlSource(configuration, IDENTITY, entityClass);

        MappedStatement.Builder statementBuilder = new MappedStatement.Builder(configuration, keyId, sqlSource,
                SqlCommandType.SELECT);
        statementBuilder.resource(ms.getResource());
        statementBuilder.fetchSize(null);
        statementBuilder.statementType(StatementType.STATEMENT);
        statementBuilder.keyGenerator(new NoKeyGenerator());
        statementBuilder.keyProperty(column.getProperty());
        statementBuilder.keyColumn(null);
        statementBuilder.databaseId(null);
        statementBuilder.lang(configuration.getDefaultScriptingLanuageInstance());
        statementBuilder.resultOrdered(false);
        statementBuilder.resulSets(null);
        statementBuilder.timeout(configuration.getDefaultStatementTimeout());

        List<ParameterMapping> parameterMappings = new ArrayList<ParameterMapping>();
        ParameterMap.Builder inlineParameterMapBuilder = new ParameterMap.Builder(configuration,
                statementBuilder.id() + "-Inline", entityClass, parameterMappings);
        statementBuilder.parameterMap(inlineParameterMapBuilder.build());

        List<ResultMap> resultMaps = new ArrayList<ResultMap>();
        ResultMap.Builder inlineResultMapBuilder = new ResultMap.Builder(configuration,
                statementBuilder.id() + "-Inline", column.getJavaType(), new ArrayList<ResultMapping>(), null);
        resultMaps.add(inlineResultMapBuilder.build());
        statementBuilder.resultMaps(resultMaps);
        statementBuilder.resultSetType(null);

        statementBuilder.flushCacheRequired(false);
        statementBuilder.useCache(false);
        statementBuilder.cache(null);

        MappedStatement statement = statementBuilder.build();
        try {
            configuration.addMappedStatement(statement);
        } catch (Exception e) {
            //ignore
        }
        MappedStatement keyStatement = configuration.getMappedStatement(keyId, false);
        keyGenerator = new SelectKeyGenerator(keyStatement, executeBefore);
        try {
            configuration.addKeyGenerator(keyId, keyGenerator);
        } catch (Exception e) {
            //ignore
        }
    }
    //keyGenerator
    try {
        MetaObject msObject = SystemMetaObject.forObject(ms);
        msObject.setValue("keyGenerator", keyGenerator);
        msObject.setValue("keyProperties", column.getTable().getKeyProperties());
        msObject.setValue("keyColumns", column.getTable().getKeyColumns());
    } catch (Exception e) {
        //ignore
    }
}

From source file:com.mybatisX.mapper.AutoSqlInjector.java

License:Apache License

/**
 * <p>/*from w ww  .j  a v a  2  s . c om*/
 *  SQL ?
 * </p>
 *
 * @param mapperClass
 * @param modelClass
 * @param table
 */
protected void injectDeleteByIdSql(boolean batch, Class<?> mapperClass, Class<?> modelClass, TableInfo table) {
    SqlMethod sqlMethod = SqlMethod.DELETE_BY_ID;
    SqlSource sqlSource = null;
    if (batch) {
        sqlMethod = SqlMethod.DELETE_BATCH_BY_IDS;
        StringBuilder ids = new StringBuilder();
        ids.append("\n<foreach item=\"item\" index=\"index\" collection=\"list\" separator=\",\">");
        ids.append("#{item}");
        ids.append("\n</foreach>");
        String sql = String.format(sqlMethod.getSql(), table.getTableName(), table.getKeyColumn(),
                ids.toString());
        sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass);
    } else {
        String sql = String.format(sqlMethod.getSql(), table.getTableName(), table.getKeyColumn(),
                table.getKeyColumn());
        sqlSource = new RawSqlSource(configuration, sql, Object.class);
    }
    this.addDeleteMappedStatement(mapperClass, sqlMethod.getMethod(), sqlSource);
}

From source file:com.mybatisX.mapper.AutoSqlInjector.java

License:Apache License

/**
 * <p>/*from   ww w  .  j a va 2  s.c om*/
 *  SQL ?
 * </p>
 *
 * @param batch
 *            ???
 * @param mapperClass
 * @param modelClass
 * @param table
 */
protected void injectSelectByIdSql(boolean batch, Class<?> mapperClass, Class<?> modelClass, TableInfo table) {
    SqlMethod sqlMethod = SqlMethod.SELECT_BY_ID;
    SqlSource sqlSource = null;
    if (batch) {
        sqlMethod = SqlMethod.SELECT_BATCH_BY_IDS;
        StringBuilder ids = new StringBuilder();
        ids.append("\n<foreach item=\"item\" index=\"index\" collection=\"list\" separator=\",\">");
        ids.append("#{item}");
        ids.append("\n</foreach>");
        sqlSource = languageDriver.createSqlSource(configuration, String.format(sqlMethod.getSql(),
                sqlSelectColumns(table, false), table.getTableName(), table.getKeyColumn(), ids.toString()),
                modelClass);
    } else {
        sqlSource = new RawSqlSource(configuration,
                String.format(sqlMethod.getSql(), sqlSelectColumns(table, false), table.getTableName(),
                        table.getKeyColumn(), table.getKeyProperty()),
                Object.class);
    }
    this.addSelectMappedStatement(mapperClass, sqlMethod.getMethod(), sqlSource, modelClass, table);
}

From source file:com.noasking.mapper.mapperhelper.MapperTemplate.java

License:Open Source License

/**
 * SelectKey/*from w ww  .  j av a 2  s  .  co  m*/
 *
 * @param ms
 * @param column
 */
protected void newSelectKeyMappedStatement(MappedStatement ms, EntityColumn column) {
    String keyId = ms.getId() + SelectKeyGenerator.SELECT_KEY_SUFFIX;
    if (ms.getConfiguration().hasKeyGenerator(keyId)) {
        return;
    }
    Class<?> entityClass = getEntityClass(ms);
    //defaults
    Configuration configuration = ms.getConfiguration();
    KeyGenerator keyGenerator;
    Boolean executeBefore = isBEFORE();
    String IDENTITY = (column.getGenerator() == null || column.getGenerator().equals("")) ? getIDENTITY()
            : column.getGenerator();
    if (IDENTITY.equalsIgnoreCase("JDBC")) {
        keyGenerator = new Jdbc3KeyGenerator();
    } else {
        SqlSource sqlSource = new RawSqlSource(configuration, IDENTITY, entityClass);

        MappedStatement.Builder statementBuilder = new MappedStatement.Builder(configuration, keyId, sqlSource,
                SqlCommandType.SELECT);
        statementBuilder.resource(ms.getResource());
        statementBuilder.fetchSize(null);
        statementBuilder.statementType(StatementType.STATEMENT);
        statementBuilder.keyGenerator(new NoKeyGenerator());
        statementBuilder.keyProperty(column.getProperty());
        statementBuilder.keyColumn(null);
        statementBuilder.databaseId(null);
        statementBuilder.lang(configuration.getDefaultScriptingLanuageInstance());
        statementBuilder.resultOrdered(false);
        statementBuilder.resulSets(null);
        statementBuilder.timeout(configuration.getDefaultStatementTimeout());

        List<ParameterMapping> parameterMappings = new ArrayList<ParameterMapping>();
        ParameterMap.Builder inlineParameterMapBuilder = new ParameterMap.Builder(configuration,
                statementBuilder.id() + "-Inline", entityClass, parameterMappings);
        statementBuilder.parameterMap(inlineParameterMapBuilder.build());

        List<ResultMap> resultMaps = new ArrayList<ResultMap>();
        ResultMap.Builder inlineResultMapBuilder = new ResultMap.Builder(configuration,
                statementBuilder.id() + "-Inline", column.getJavaType(), new ArrayList<ResultMapping>(), null);
        resultMaps.add(inlineResultMapBuilder.build());
        statementBuilder.resultMaps(resultMaps);
        statementBuilder.resultSetType(null);

        statementBuilder.flushCacheRequired(false);
        statementBuilder.useCache(false);
        statementBuilder.cache(null);

        MappedStatement statement = statementBuilder.build();
        try {
            configuration.addMappedStatement(statement);
        } catch (Exception e) {
            //ignore
        }
        MappedStatement keyStatement = configuration.getMappedStatement(keyId, false);
        keyGenerator = new SelectKeyGenerator(keyStatement, executeBefore);
        try {
            configuration.addKeyGenerator(keyId, keyGenerator);
        } catch (Exception e) {
            //ignore
        }
    }
    //keyGenerator
    try {
        MetaObject msObject = SystemMetaObject.forObject(ms);
        msObject.setValue("keyGenerator", keyGenerator);
        msObject.setValue("keyProperties", column.getTable().getKeyProperties());
        msObject.setValue("keyColumns", column.getTable().getKeyColumns());
    } catch (Exception e) {
        //ignore
    }
}

From source file:com.sinotopia.mybatis.mapper.mapperhelper.MapperTemplate.java

License:Open Source License

/**
 * SelectKey//  w  w w.ja v a  2s .  co  m
 *
 * @param ms
 * @param column
 */
protected void newSelectKeyMappedStatement(MappedStatement ms, EntityColumn column) {
    String keyId = ms.getId() + SelectKeyGenerator.SELECT_KEY_SUFFIX;
    if (ms.getConfiguration().hasKeyGenerator(keyId)) {
        return;
    }
    Class<?> entityClass = getEntityClass(ms);
    //defaults
    Configuration configuration = ms.getConfiguration();
    KeyGenerator keyGenerator;
    Boolean executeBefore = isBEFORE();
    String IDENTITY = (column.getGenerator() == null || column.getGenerator().equals("")) ? getIDENTITY(column)
            : column.getGenerator();
    if (IDENTITY.equalsIgnoreCase("JDBC")) {
        keyGenerator = new Jdbc3KeyGenerator();
    } else {
        SqlSource sqlSource = new RawSqlSource(configuration, IDENTITY, entityClass);

        MappedStatement.Builder statementBuilder = new MappedStatement.Builder(configuration, keyId, sqlSource,
                SqlCommandType.SELECT);
        statementBuilder.resource(ms.getResource());
        statementBuilder.fetchSize(null);
        statementBuilder.statementType(StatementType.STATEMENT);
        statementBuilder.keyGenerator(new NoKeyGenerator());
        statementBuilder.keyProperty(column.getProperty());
        statementBuilder.keyColumn(null);
        statementBuilder.databaseId(null);
        statementBuilder.lang(configuration.getDefaultScriptingLanuageInstance());
        statementBuilder.resultOrdered(false);
        statementBuilder.resulSets(null);
        statementBuilder.timeout(configuration.getDefaultStatementTimeout());

        List<ParameterMapping> parameterMappings = new ArrayList<ParameterMapping>();
        ParameterMap.Builder inlineParameterMapBuilder = new ParameterMap.Builder(configuration,
                statementBuilder.id() + "-Inline", entityClass, parameterMappings);
        statementBuilder.parameterMap(inlineParameterMapBuilder.build());

        List<ResultMap> resultMaps = new ArrayList<ResultMap>();
        ResultMap.Builder inlineResultMapBuilder = new ResultMap.Builder(configuration,
                statementBuilder.id() + "-Inline", column.getJavaType(), new ArrayList<ResultMapping>(), null);
        resultMaps.add(inlineResultMapBuilder.build());
        statementBuilder.resultMaps(resultMaps);
        statementBuilder.resultSetType(null);

        statementBuilder.flushCacheRequired(false);
        statementBuilder.useCache(false);
        statementBuilder.cache(null);

        MappedStatement statement = statementBuilder.build();
        try {
            configuration.addMappedStatement(statement);
        } catch (Exception e) {
            //ignore
        }
        MappedStatement keyStatement = configuration.getMappedStatement(keyId, false);
        keyGenerator = new SelectKeyGenerator(keyStatement, executeBefore);
        try {
            configuration.addKeyGenerator(keyId, keyGenerator);
        } catch (Exception e) {
            //ignore
        }
    }
    //keyGenerator
    try {
        MetaObject msObject = SystemMetaObject.forObject(ms);
        msObject.setValue("keyGenerator", keyGenerator);
        msObject.setValue("keyProperties", column.getTable().getKeyProperties());
        msObject.setValue("keyColumns", column.getTable().getKeyColumns());
    } catch (Exception e) {
        //ignore
    }
}