XMLMapperParser用来解析mapper映射文件。
package com.example.aninbatis.config;
import java.util.List;
import org.dom4j.Element;
/**
* 用来解析mapper映射文件
*/
public class XMLMapperParser {
/**
* 全局配置封装
*/
private Configuration configuration;
public XMLMapperParser(Configuration configuration) {
this.configuration = configuration;
}
/**
*
* @param rootElement
* <mapper namespace="test">
*/
@SuppressWarnings("unchecked")
public void parse(Element rootElement) {
String namespace = rootElement.attributeValue("namespace");
// mapper标签下会包含一些sql片段标签、resultMap标签等,这些标签直接解析处理,而statement相关的标签单独处理
//此处可以使用XPath语法来进行通配
List<Element> elements = rootElement.elements("select");
for (Element selectElement : elements) {
// select update delete insert 都对应一个statement
XMLStatementParser scriptParser = new XMLStatementParser(configuration);
scriptParser.parseStatement(selectElement,namespace);
}
}
}