导入xml操作的类和用到的相关包

创建util包,然后把提供好的XMLConfigBuilder.java文件复制3过来

复制过来,里面用到了很多dom4j的东西

打开pom.xml

输入dependency.然后输入dom4j


这里用到的是dom4j的扩展内容,叫做xpath

用到xmpath就还需要导入包,jaxen

创建configuration

返回值是一个configuration。但是我们还没有这个


放到cfg的包下

我们把 configuration导进来。发现都是存放链接信息的

因为需要在configuration里面定义

生成他们的getter和setter方法
这样这里就都没有错误了 

Mapper

后面还用到了Mapper的类


看我们之前的图,Mapper里面包含两部分。1是要执行的SQL语句 2是封装结果的实体类全限定类名

新建Mapper类。

然后生成getter和setter

读取XML的mapper

下面两段代码,一段是使用XML的,一段是使用注解的。

因为我们这里没有用到注解所以这里先注释掉
下面找到方法体 都注释掉

查看XML的主要代码,首先是找到mappers下面的mapper


mappers有可能是有多个mapper。因此这里进行遍历

取出了Resource的属性值。


判断resource的属性节点是否为null。如果不为null则表示使用的是XML的方式

把获取到的属性值传递到方法loadMapperConfiguration

loadMapperConfiguration方法

首先是定义了一个Mapper,方便查找。

解析xml找到select标签

找到的是这里的xml的select节点

找到xml后,取出id属性的值

最终形成的对象。

Mapppers属性

mapper值返回来后,通过setMappers方法传递进去。这里还缺少一个setMappers的方法

增加Configuration类里面属性 mappers

生成的getter和setter方法

这里的getter使用追加的方式

最后包的问题

红框选中都删除掉。

在注视这里

这样我们有了这个工具类就可以创建Factory了

阶段3 1.Mybatis_03.自定义Mybatis框架_4.自定义mybatis的编码-解析XML的工具类介绍的更多相关文章

  1. Unit07: MyBatis框架简介 、 MyBatis基本应用

    Unit07: MyBatis框架简介 . MyBatis基本应用 1. myBatis (1)myBatis是什么? 是一个开源的持久层框架. 注:myBatis底层仍然是jdbc. (2)编程步骤 ...

  2. 阶段3 1.Mybatis_03.自定义Mybatis框架_3.自定义mybatis的编码-根据测试类中缺少的创建接口和类

    先认识一下这几个类.Resources是一个class SqlSessionFactoryBuilder 创建新项目 复制相关的依赖 复制之前的代码 复制到当前项目的src下 把Mybits的依赖删除 ...

  3. 使用mybatis框架实现带条件查询-多条件(传入实体类)

    在实际的项目开发中,使用mybatis框架查询的时候,不可能是只有一个条件的,大部分情况下是有多个条件的,那么多个条件应该怎样传入参数: 思考:  需求:根据用户姓名(模糊查询),和用户角色对用户表进 ...

  4. 阶段3 1.Mybatis_03.自定义Mybatis框架_7.自定义Mybatis的编码-实现基于注解配置的查询所有

    注解的方式,这里进行修改.上面注释的是原来xml的方式. 在dao类里面加上注解 创建注解类 声明注解的生命周期为Runntime 改变注解出现的位置,在Mehtod方法上 写完之后这里就不报错了. ...

  5. 阶段3 1.Mybatis_03.自定义Mybatis框架_6.自定义Mybatis的编码-实现基于XML的查询所有操作

    接下来就可以写创建代理对象的方法了 类加载器,代理谁,就用谁的加载器,因为这里用daoInterfaceClass.getClassLoader() 第二个代理谁就要和谁有相同的接口,daoInter ...

  6. 阶段3 1.Mybatis_03.自定义Mybatis框架_5.自定义Mybatis的编码-创建两个默认实现类并分析类之间的关系

    把XMLConfigBuilder的包名补全 这样我们就可以调用里面的loadConfiguration方法了 创建工厂实现类 实现SqlSessionFactory的接口 实现接口里面的方法 把cf ...

  7. 阶段3 1.Mybatis_03.自定义Mybatis框架_2.自定义Mybatis的分析-创建代理对象的分析

    如何创建代理对象,以及使用设计模式带来的优势 调用的组合关系 不关注的,执行JDBC那一套.第二个是解析XML,解析的技术有很多.

  8. 阶段3 1.Mybatis_03.自定义Mybatis框架_1.自定义Mybatis的分析-执行查询所有分析

  9. Mybatis框架学习总结-Mybatis框架搭建和使用

    Mybatis介绍 Mybatis是一个支持普通SQL查询,存储过程,和高级映射的优秀持久层框架.Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.Mybatis可以使 ...

随机推荐

  1. #1055 ... sql_mode=only_full_group_by

    sql_mode=only_full_group_by 版权声明:本文为参考多篇博主文章,略作测试修改. 参考文章: 猿医生 的<5分钟学会MySQL-this is incompatible ...

  2. JDBC实现最简单的增删改查

    好久没写博客了,今天刚进入一家公司实习,在实习这段期间想把自己所学的东西通过博客记录下来 今天上午简单回顾了一下用JDBC实现最简单的增删改查 废话不多说,接下来就说明怎么用JDBC实现最简单的增删改 ...

  3. 清楚webView的缓存

    +(void)clearCache{    NSHTTPCookie *cookie;    NSHTTPCookieStorage *storage = [NSHTTPCookieStorage s ...

  4. 批处理实现自动Git push

    用Git用的多,每次修改文件后都需要敲几条命令: git add git commit git push ······ 太麻烦了 于是想到使用批处理(.bat)来自动化这个过程(注意:Windows环 ...

  5. Noip2018退役记。

    下面是边考试边写的严肃版退役记\(:D\) Day0 其实我本来想取个这个名字:\(NOIP2018\)提高组复赛试题解析 但是这个博客自己求生欲望太强自己改名了. 先占个坑. noip考前毒奶 \( ...

  6. MyEclipse使用教程:unattended安装

    [MyEclipse CI 2019.4.0安装包下载] 以下内容适用于2013及以上版本. 运行无提示安装程序 1. 创建一个unattended response文件. 2. 要激活unatten ...

  7. 24.二叉树中和为某一值的路径(python)

    题目描述 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.(注意: 在返回值的list中,数组长度大 ...

  8. angular-seed — AngularJS种子项目

    AngularJS Seed 是典型 AngularJS web 应用的应用骨架,可以快速启动你的 AngularJS webapp 项目和这些项目的开发环境. AngularJS Seed 包括一个 ...

  9. 访问SpringBoot中的Swagger的方法

    1.首先启动springboot+swagger的工程. 2.在application.yml里面查看服务的端口号,比如这里是9510. 3.访问URL:http://localhost:9510/t ...

  10. MongoDB操作:insert()

    @Override public boolean inSert(String dbName, String collectionName, String[] keys, Object[] values ...