XMLMapperParser用来解析mapper映射文件。

    1. package com.example.aninbatis.config;
    2. import java.util.List;
    3. import org.dom4j.Element;
    4. /**
    5. * 用来解析mapper映射文件
    6. */
    7. public class XMLMapperParser {
    8. /**
    9. * 全局配置封装
    10. */
    11. private Configuration configuration;
    12. public XMLMapperParser(Configuration configuration) {
    13. this.configuration = configuration;
    14. }
    15. /**
    16. *
    17. * @param rootElement
    18. * <mapper namespace="test">
    19. */
    20. @SuppressWarnings("unchecked")
    21. public void parse(Element rootElement) {
    22. String namespace = rootElement.attributeValue("namespace");
    23. // mapper标签下会包含一些sql片段标签、resultMap标签等,这些标签直接解析处理,而statement相关的标签单独处理
    24. //此处可以使用XPath语法来进行通配
    25. List<Element> elements = rootElement.elements("select");
    26. for (Element selectElement : elements) {
    27. // select update delete insert 都对应一个statement
    28. XMLStatementParser scriptParser = new XMLStatementParser(configuration);
    29. scriptParser.parseStatement(selectElement,namespace);
    30. }
    31. }
    32. }