⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sqlmapconfig.java

📁 羽量级数据持久层开发框架
💻 JAVA
字号:
package org.speedframework.config;

//~--- non-JDK imports --------------------------------------------------------

import org.apache.log4j.Logger;

import org.speedframework.exception.SpeedFrameworkException;
import org.speedframework.utilities.ConfigureUtility;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

//~--- JDK imports ------------------------------------------------------------

import java.util.HashMap;


/**
 * Class SqlMapConfig
 * 装载sqlmap配置文件信息,由SpeedConfig进行创建管理
 * @author <a href="mailto:lzfxp@126.com"> lzfxp </a>
 * @version $Revision:1.0.0, $Date: Oct 9, 2007 5:19:06 PM $
 */
public class SqlMapConfig
 {

    private static Logger log = Logger.getLogger(SqlMapConfig.class);

    private static Document doc = ConfigureUtility.buildDocument("/sqlMapConfig.xml");

    private static Element root = ConfigureUtility.getRoot(doc);

    private HashMap alias = new HashMap();

    private HashMap parameterMapList = new HashMap();

    private HashMap resultMapList = new HashMap();

    private HashMap selectList = new HashMap();

    private HashMap insertList = new HashMap();

    private HashMap updateList = new HashMap();

    private HashMap deleteList = new HashMap();

    /**
     * Constructs ...
     * SqlMapConfig构造函数,根据path初始化配置文件信息
     * @param path
     *
     * @throws SpeedFrameworkException
     */
    public SqlMapConfig(String path) throws SpeedFrameworkException {
        doc  = ConfigureUtility.buildDocument(path);
        root = ConfigureUtility.getRoot(doc);
    }

    private void init() {
        initAliasMap();
        initParameterMapList();
        initResultMapList();
        initSelectList();
        initInsertList();
        initUpdateList();
        initDeleteList();
    }


    private void initAliasMap() {
        NodeList aliasList = ConfigureUtility.getElementsByName(root, "typeAlias");

        if (aliasList.getLength() == 0) {
            return;
        }

        for (int i = 0; i < aliasList.getLength(); i++) {
            Element aliasItem = (Element) aliasList.item(i);

            log.debug("alias:" + aliasItem.getAttribute("alias") + "=" + aliasItem.getAttribute("type"));
            alias.put(aliasItem.getAttribute("alias"), aliasItem.getAttribute("type"));
        }
    }

    private void initParameterMapList() {
        NodeList     list = ConfigureUtility.getElementsByName(root, "parameterMap");
        ParameterMap parameterMap;

        for (int i = 0; i < list.getLength(); i++) {
            Element item = (Element) list.item(i);

            parameterMap = new ParameterMap();
            parameterMap.setId(item.getAttribute("id"));

            if (alias.containsKey(item.getAttribute("class"))) {
                parameterMap.setClazz((String) alias.get(item.getAttribute("class")));
            } else {
                parameterMap.setClazz(item.getAttribute("class"));
            }

            NodeList  list1 = item.getElementsByTagName("parameter");
            Parameter parameter;

            for (int j = 0; j < list1.getLength(); j++) {
                Element item1 = (Element) list1.item(j);

                parameter = new Parameter();
                parameter.setProperty(item1.getAttribute("property"));
                parameter.setJavaType(item1.getAttribute("javaType"));
                parameter.setJdbcType(item1.getAttribute("jdbcType"));
                parameter.setNullValue(item1.getAttribute("nullValue"));
                parameterMap.getParameter().add(parameter);
            }

            log.debug("load resultMap id=" + parameterMap.getId());
            parameterMapList.put(parameterMap.getId(), parameterMap);
        }
    }


    private void initResultMapList() {
        NodeList  list = ConfigureUtility.getElementsByName(root, "resultMap");
        ResultMap resultMap;

        for (int i = 0; i < list.getLength(); i++) {
            Element item = (Element) list.item(i);

            resultMap = new ResultMap();
            resultMap.setId(item.getAttribute("id"));

            if (alias.containsKey(item.getAttribute("class"))) {
                resultMap.setClazz((String) alias.get(item.getAttribute("class")));
            } else {
                resultMap.setClazz(item.getAttribute("class"));
            }

            NodeList list1 = item.getElementsByTagName("result");
            Result   result;

            for (int j = 0; j < list1.getLength(); j++) {
                Element item1 = (Element) list1.item(j);

                result = new Result();
                result.setProperty(item1.getAttribute("property"));
                result.setColumn(item1.getAttribute("column"));
                result.setColumnIndex(item1.getAttribute("columnIndex"));
                result.setJavaType(item1.getAttribute("javaType"));
                result.setJdbcType(item1.getAttribute("jdbcType"));
                result.setNullValue(item1.getAttribute("nullValue"));
                resultMap.getResult().add(result);
            }

            log.debug("load resultMap id=" + resultMap.getId());
            resultMapList.put(resultMap.getId(), resultMap);
        }
    }


    private void initSelectList() {
        NodeList        list = ConfigureUtility.getElementsByName(root, "select");
        StatementConfig select;

        for (int i = 0; i < list.getLength(); i++) {
            Element item = (Element) list.item(i);

            select = new StatementConfig();
            select.setId(item.getAttribute("id"));

            if (alias.containsKey(item.getAttribute("parameterClass"))) {
                select.setParameterClass((String) alias.get(item.getAttribute("parameterClass")));
            } else {
                select.setParameterClass(item.getAttribute("parameterClass"));
            }

            select.setParameterMap(item.getAttribute("parameterMap"));

            if (alias.containsKey(item.getAttribute("resultClass"))) {
                select.setParameterClass((String) alias.get(item.getAttribute("resultClass")));
            } else {
                select.setParameterClass(item.getAttribute("resultClass"));
            }

            // select.setValue(item.getTextContent().trim());
            log.debug("load select id=" + select.getId() + "->" + select.getValue());
            selectList.put(select.getId(), select);
        }
    }


    private void initInsertList() {
        NodeList        list = ConfigureUtility.getElementsByName(root, "insert");
        StatementConfig insert;

        for (int i = 0; i < list.getLength(); i++) {
            Element item = (Element) list.item(i);

            insert = new StatementConfig();
            insert.setId(item.getAttribute("id"));

            if (alias.containsKey(item.getAttribute("parameterClass"))) {
                insert.setParameterClass((String) alias.get(item.getAttribute("parameterClass")));
            } else {
                insert.setParameterClass(item.getAttribute("parameterClass"));
            }

            insert.setParameterMap(item.getAttribute("parameterMap"));

            // insert.setValue(item.getTextContent().trim());
            log.debug("load insert id=" + insert.getId() + "->" + insert.getValue());
            insertList.put(insert.getId(), insert);
        }
    }


    private void initUpdateList() {
        NodeList        list = ConfigureUtility.getElementsByName(root, "update");
        StatementConfig update;

        for (int i = 0; i < list.getLength(); i++) {
            Element item = (Element) list.item(i);

            update = new StatementConfig();
            update.setId(item.getAttribute("id"));

            if (alias.containsKey(item.getAttribute("parameterClass"))) {
                update.setParameterClass((String) alias.get(item.getAttribute("parameterClass")));
            } else {
                update.setParameterClass(item.getAttribute("parameterClass"));
            }

            update.setParameterMap(item.getAttribute("parameterMap"));

            // update.setValue(item.getTextContent().trim());
            log.debug("load update id=" + update.getId() + "->" + update.getValue());
            updateList.put(update.getId(), update);
        }
    }


    private void initDeleteList() {
        NodeList        list = ConfigureUtility.getElementsByName(root, "delete");
        StatementConfig delete;

        for (int i = 0; i < list.getLength(); i++) {
            Element item = (Element) list.item(i);

            delete = new StatementConfig();
            delete.setId(item.getAttribute("id"));

            if (alias.containsKey(item.getAttribute("parameterClass"))) {
                delete.setParameterClass((String) alias.get(item.getAttribute("parameterClass")));
            } else {
                delete.setParameterClass(item.getAttribute("parameterClass"));
            }

            delete.setParameterMap(item.getAttribute("parameterMap"));

            // delete.setValue(item.getTextContent().trim());
            log.debug("load delete id=" + delete.getId() + "->" + delete.getValue());
            updateList.put(delete.getId(), delete);
        }
    }

    /**
     * Method getOriginalByAlias
     * 返回别名的全称
     * @param alias
     * @return String
     */
    public String getOriginalByAlias(String alias) {
        return (String) this.alias.get(alias);
    }


    /**
     * Method getParameterMapById
     * 返回id指定的parameterMap信息
     * @param id
     * @return ParameterMap
     */
    public ParameterMap getParameterMapById(String id) {
        return (ParameterMap) parameterMapList.get(id);
    }


    /**
     * Method getResultMapById
     * 返回id指定的resultMap信息
     * @param id
     * @return ResultMap
     */
    public ResultMap getResultMapById(String id) {
        return (ResultMap) resultMapList.get(id);
    }


    /**
     * Method getSelectById
     * 返回select元素中id指定的statementConfig信息
     * @param id
     * @return StatementConfig
     */
    public StatementConfig getSelectById(String id) {
        return (StatementConfig) selectList.get(id);
    }


    /**
     * Method getInsertById
     * 返回insert元素中id指定的statementConfig信息
     * @param id
     * @return StatementConfig
     */
    public StatementConfig getInsertById(String id) {
        return (StatementConfig) insertList.get(id);
    }

    /**
     * Method getUpdateById
     * 返回update元素中id指定的statementConfig信息
     * @param id
     * @return StatementConfig
     */
    public StatementConfig getUpdateById(String id) {
        return (StatementConfig) updateList.get(id);
    }


    /**
     * Method getDeletetById
     * 返回delete元素中id指定的statementConfig信息
     * @param id
     * @return StatementConfig
     */
    public StatementConfig getDeletetById(String id) {
        return (StatementConfig) deleteList.get(id);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -