Example usage for org.apache.ibatis.builder.xml XMLMapperBuilder XMLMapperBuilder

List of usage examples for org.apache.ibatis.builder.xml XMLMapperBuilder XMLMapperBuilder

Introduction

In this page you can find the example usage for org.apache.ibatis.builder.xml XMLMapperBuilder XMLMapperBuilder.

Prototype

public XMLMapperBuilder(InputStream inputStream, Configuration configuration, String resource,
            Map<String, XNode> sqlFragments, String namespace) 

Source Link

Usage

From source file:org.springframework.data.mybatis.repository.query.PartTreeMybatisQuery.java

License:Apache License

private void doCreateQueryStatement(MybatisQueryMethod method) {

    Configuration configuration = sqlSessionTemplate.getConfiguration();

    String statementXML = "";
    if (tree.isDelete()) {
        statementXML = doCreateDeleteQueryStatement();
    } else if (tree.isCountProjection()) {
        statementXML = doCreateCountQueryStatement(getStatementName());
    } else if (method.isPageQuery()) {
        statementXML = doCreatePageQueryStatement(true);
    } else if (method.isSliceQuery()) {
        statementXML = doCreatePageQueryStatement(false);
    } else if (method.isStreamQuery()) {
    } else if (method.isCollectionQuery()) {
        statementXML = doCreateCollectionQueryStatement();
    } else if (method.isQueryForEntity()) {
        statementXML = doCreateSelectQueryStatement(getStatementName());
    }//from  ww w .  jav  a  2  s  .  c  om

    StringBuilder builder = new StringBuilder();
    builder.append(MAPPER_BEGIN);
    builder.append("<mapper namespace=\"" + getNamespace() + "\">");
    builder.append(statementXML);
    builder.append(MAPPER_END);

    String xml = builder.toString();

    if (logger.isDebugEnabled()) {
        logger.debug("\n******************* Auto Generate MyBatis Mapping XML (" + getStatementId()
                + ") *******************\n" + xml);
    }
    InputStream inputStream = null;
    try {
        inputStream = new ByteArrayInputStream(xml.getBytes("UTF-8"));
    } catch (UnsupportedEncodingException e) {
        // ignore
    }
    String namespace = getNamespace();
    String resource = getStatementId() + "_auto_generate.xml";
    try {
        XMLMapperBuilder xmlMapperBuilder = new XMLMapperBuilder(inputStream, configuration, resource,
                configuration.getSqlFragments(), namespace);
        xmlMapperBuilder.parse();
    } catch (Exception e) {
        throw new MappingException("create auto mapping error for " + namespace, e);
    } finally {
        try {
            inputStream.close();
        } catch (IOException e) {
            logger.error(e.getMessage(), e);
        }
    }

}

From source file:org.springframework.data.mybatis.repository.support.MybatisSimpleRepositoryMapperGenerator.java

License:Apache License

public void generate() {
    String xml;/*from   ww  w  . j a  va 2 s.c om*/
    String namespace = model.getClz().getName();
    try {
        xml = render();
    } catch (IOException e) {
        throw new MappingException("create auto mapping error for " + namespace, e);
    }
    if (logger.isDebugEnabled()) {
        logger.debug("\n******************* Auto Generate MyBatis Mapping XML (" + namespace
                + ") *******************\n" + xml);
    }
    InputStream inputStream = null;
    try {
        inputStream = new ByteArrayInputStream(xml.getBytes("UTF-8"));
    } catch (UnsupportedEncodingException e) {
        // ignore
    }
    String resource = namespace + "_auto_generate.xml";
    try {
        XMLMapperBuilder xmlMapperBuilder = new XMLMapperBuilder(inputStream, configuration, resource,
                configuration.getSqlFragments(), namespace);
        xmlMapperBuilder.parse();
    } catch (Exception e) {
        logger.warn(xml);
        throw new MappingException("create auto mapping error for " + namespace, e);
    } finally {
        try {
            inputStream.close();
        } catch (IOException e) {
            logger.error(e.getMessage(), e);
        }
    }
}