导入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了

转载于:https://www.cnblogs.com/wangjunwei/p/11300029.html

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

  1. Java Mybatis 框架 VII 之 Mybatis 扩展

    Java Mybatis 框架 VII 之 Mybatis 扩展 Mybatis 扩展 1.关于#{}和${}格式的占位符 ● 在Mybatis中,配置SQL语句时,参数可以使用#{}或${}格式的占 ...

  2. java day53【 Mybatis框架概述 、 Mybatis 框架快速入门、自定义 Mybatis 框架 】

    第1章 框架概述 1.1 什么是框架 1.1.1 什么是框架 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种 定义认为,框架是可被应用开发者定 ...

  3. mybatis框架总体说明---Mybatis学习笔记(二)

    mybatis是什么? mybatis是一个持久层的框架,是apache下的顶级项目,后来托管到googlecode下,再后来托管到github下(https://github.com/mybatis ...

  4. 【Mybatis框架】初识Mybatis

    CSDN话题挑战赛第2期 参赛话题:学习笔记 MyBatis 1.MyBatis简介 1.1.MyBatis历史 1.2.MyBatis特性 2. 搭建MyBatis 2.1 创建一个Maven项目 ...

  5. 自定义工具类:工具类介绍

    自定义工具类 自定义注解 自定义注解 package com.learn.domain.poi;import java.lang.annotation.ElementType; import java ...

  6. 小汤学编程之JAVA基础day11——集合框架:List/Set/Map集合、Collections集合工具类、泛型、TreeMap和TreeSet

    一.集合的特点 二.继承结构图 三.List集合 1.特点     2.ArrayList类     3.LinkedList类     4.两者的对比     5.集合的遍历 四.Set集合 1.特 ...

  7. 最详细的Spring+SpringMVC+Mybatis框架整合及mybatis分页讲解,适合初级者

    最详细的关于idea整合ssm框架讲解 一个关于brand(品牌)的项目 [ssm框架搭建源代码及mysql数据库数据]链接:https://pan.baidu.com/s/1eBogklK0rFLj ...

  8. mybatis自动生成数据库对应的mapper接口,xml和实体类

    1.加载依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>sp ...

  9. MyBatis-学习笔记03【03.自定义Mybatis框架】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  10. MyBatis框架学习DAY_01:概念/创建运行流程

    MyBatis框架 1. MyBatis框架的作用 2. 创建MyBatis项目 3. 连接数据库 4. 创建数据表 5. 插入数据 5.1. 定义抽象方法 5.2. 配置SQL语句 5.3. 获取自 ...

最新文章

  1. C++编译期多态与运行期多态
  2. linux下mysql的root密码忘记解决方
  3. SQL Server 2005/2008 图形界面(SQL Server Management Studio Express)
  4. JavaScript设计模式学习——builder pattern(建造者模式)
  5. AOJ GRL_1_B: Shortest Path - Single Source Shortest Path (Negative Edges) (Bellman-Frod算法求负圈和单源最短路径)
  6. nodejs request module里的json参数的一个坑
  7. php 出错处理,PHP 错误处理机制
  8. 数据库分类与四大类NoSQL数据库
  9. 2020语言与智能技术竞赛-事件抽取方案整理(第一波
  10. 应用HTK搭建语音拨号系统2:创建单音素HMM模型
  11. 信息管理与信息系统毕业论文选题?
  12. 进入地图后分别进行放大缩小操作
  13. 机器学习概念西洋跳棋
  14. 小学计算机教案2018六年级,2017年小学六年级下册信息技术教学计划
  15. 顺序图-循环和分支-操作符的使用
  16. Base64编码解码C代码实现
  17. [乐意黎原创]PHP启用session后抛 session_start(): open(/var/lib/php/session/sess_... 的解决办法
  18. MOSFET和IGBT栅极驱动器电路的基本原理的学习(1)
  19. 人工智能在游戏领域的应用
  20. java 常见异常汇总_Java常见异常总结

热门文章

  1. python试卷生成_小学初中高中试卷自动生成
  2. 拓端tecdat|r语言有限正态混合模型EM算法的分层聚类、分类和密度估计及可视化
  3. 拓端tecdat|R语言泊松Poisson回归模型分析案例
  4. android 蓝牙通讯测试工具,Android Bluetooth 学习(2)应用层实现蓝牙设备查找、tcp_ip通信...
  5. Java实现常见的排序算法
  6. 大疆DJI Thermal SDK Linux编译
  7. CUDA环境变量添加
  8. GCN--如何用图卷积网络在图上进行深度学习
  9. DeepFake技术--实际操作
  10. 雄狮少年,究竟怎样,我们用实际的数据来一探究竟