Mybatis-Mapper封装数据类

1.1 项目准备

mybatis框架分析

1.1.1 项目环境
  1. sqlMapConfig.xml核心配置文件,去掉DTD约束。因为dom4j会上网去找dtd文件。
  2. UserMapper.xml映射配置文件,去掉DTD约束。
  3. UserMapper接口。
  4. User实体类。

导入相关jar包

UserMapper.xml

5.1.2 代码实现
  • 创建包cn.guardwhy.framework。
  • 创建实体类:Mapper包含4个属性:namespace,id,resultType,sql。
  • 重写toString()方法,方便后期测试看到封装的结果。
  • 生成get和set方法,一个Mapper对象代表一条要操作的查询语句对象。
package cn.guardwhy.framework;
/**
 * 封装UserMapper.xml属性
 */
public class Mapper {
   
    private String namespace; // 封装接口名
    private String id; // 方法名
    private String resultType; // 返回实体类类型
    private String sql; // 要执行的SQL语句

    /**
     * get.set方法
     * @return
     */
    public String getNamespace() {
   
        return namespace;
    }

    public void setNamespace(String namespace) {
   
        this.namespace = namespace;
    }

    public String getId() {
   
        return id;
    }

    public void setId(String id) {
   
        this.id = id;
    }

    public String getResultType() {
   
        return resultType;
    }

    public void setResultType(String resultType) {
   
        this.resultType = resultType;
    }

    public String getSql() {
   
        return sql;
    }

    public void setSql(String sql) {
   
        this.sql = sql;
    }

    @Override
    public String toString() {
   
        return "Mapper{" +
                "namespace='" + namespace + '\'' +
                ", id='" + id + '\'' +
                ", resultType='" + resultType + '\'' +
                ", sql='" + sql + '\'' +
                '}';
    }
}

5.2 dom4j方法

解析XML文件,得到Document对象

1. 得到输入流InputStream
2. new SAXReader().read(输入流) 返回Document对象

Document常用方法

方法名 说明
Element getRootElement() 得到XML中根元素(标签)
List<Node> selectNodes(String xpath) 通过xpath查询多个节点Node, Node是Element的父接口
Node selectSingleNode(String xpath) 通过xpath得到一个节点
Element element(String name) 通过元素的名字得到它的一个子元素

属性文本相关方法

方法名 功能说明
String attributeValue(String name) 通过标签的属性名字,得到属性的值
String getTextTrim() 得到标签中文本内容,并且去掉前后的空格

5.3 核心配置文件

封装核心配置文件:sqlMapConfig.xml文件

  1. 创建driver,url, username,password四个属性
  2. 实例化1个空的Map集合:封装其它映射文件的XML信息
  3. 声明数据源对象DataSource
  4. 生成get和set方法,生成toString()方法

loadSqlMapConfig()方法

1、创建loadSqlMapConfig()方法,它的作用

  • 解析sqlMapConfig.xml配置文件,给Configuration中的属性赋值。
  • 解析UserMapper.xml配置文件,给Mapper中的属性赋值。

2、在构造方法中调用方法: loadSqlMapConfig( )

5.3.1 代码实现

核心配置文件

package cn.guardwhy.framework;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;

import javax.sql.DataSource;
import javax.xml.parsers.SAXParser;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *  解析XML文件:sqlMapConfig.xml, UserMapper.xml
 */
public class Configuration {
   
    // 1.创建连接池的属性
    private String driver;
    private String url;
    private String username;
    private String password;
    // 2.定义连接池
    private DataSource dataSource;

    // 3.实例化1个空的Map集合:封装其它映射文件的XML信息
    private Map<String, Mapper> mappers = new HashMap<>();

    // 4.在构造方法中调用方法: loadSqlMapConfig()
    public Configuration() 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值