一:XML文件中的DTD是什么?
DTD的全称为Document Type Definition,是一种文件定义格式,它规定了XML文件结构为XML文件提供了语法与规则。在DTD中定义XML文件的结构,然后按照DTD的声明来编写XML文件。就好像编程语言中的函数定义,在使用函数时要根据函数声明的格式进行来引用。
二:MyBatis的创建过程
创建MyBatis的基本步骤如下:
创建java工程
加入mybatis的jar包、数据库驱动包等
在pojo包下创建pojo类
在mapper包下创建任意名称的接口和任意名称的xml映射文件,设置dtd文件
在resources包下创建mybatis-config.xml核心配置文件,名称任意,设置dtd文件
编写映射文件
在主配置文件中加载xml映射文件
测试程序:
1)用mybatis提供的Resources类读取配置文件
2)用SqlSessionFactoryBuilder获得会话工厂,传入配置文件
3)用工厂生产SqlSession
4)调用SqlSession的相关方法获得结果
5)关闭SqlSession对象
注意事项:
Resources:建包,只能手动一个一个建;
dao层的接口名和映射文件的名字必须一致,且映射文件只能写在resources目录下
mapper映射文件中的namespace只能和接口的类路径保持一致
在mybatis-config.xml中元素标签的位置是有顺序的,顺序不对不能成功运行
记得将mapper映射文件引入到mybatis.xml文件中去
做sqlSession增删改的时候记得sqlSession.commit();
别名不区分大小写,增删改映射文件中是没有返回值类型的;int类型会默认返回.
三.Mybatis的工作原理
执行流程:
(1)读取MyBatis的配置文件。mybatis-config.xml为MyBatis的全局配置文件,用于配置数据库连接信息。
(2)加载映射文件。映射文件即SQL映射文件,该文件中配置了操作数据库的SQL语句,需要在MyBatis配置文件mybatis-config.xml中加载。mybatis-config.xml 文件可以加载多个映射文件,每个文件对应数据库中的一张表。
(3)构造会话工厂。通过MyBatis的环境配置信息构建会话工厂SqlSessionFactory。
(4)创建会话对象。由会话工厂创建SqlSession对象,该对象中包含了执行SQL语句的所有方法。
(5)Executor执行器。MyBatis底层定义了一个Executor接口来操作数据库,它将根据SqlSession传递的参数动态地生成需要执行的SQL语句,同时负责查询缓存的维护。
(6)MappedStatement对象。在Executor接口的执行方法中有一个MappedStatement类型的参数,该参数是对映射信息的封装,用于存储要映射的SQL语句的id、参数等信息。
(7)输入参数映射。输入参数类型可以是Map、List等集合类型,也可以是基本数据类型和POJO类型。输入参数映射过程类似于JDBC对preparedStatement对象设置参数的过程。
(8)输出结果映射。输出结果类型可以是Map、List等集合类型,也可以是基本数据类型和POJO类型。输出结果映射过程类似于JDBC对结果集的解析过程。