Mybatis自定义持久层框架

自定义持久层框架本质就是对JDBC代码进行了封装,下面我们结合test的模块一起进行详细解说:

  1. 首先,在test模块编写配置文件,主要包括数据源和sql配置两部分:

Mybatis自定义持久层框架

Mybatis自定义持久层框架

  1. Test模块通过 “Resources.getResourceAsStream”加载配置文件“SqlMapConfig.xml”的路径,该配置文件中已包含sql配置文件的路径“UserMapper.xml”。

持久层框架中,Resources 类的getResourceAsStream方法,会根据配置文件的路径,加载配置文件成字节输入流,存储在内存中。

Mybatis自定义持久层框架

  1. 在持久层框架中创建两个javaBean,用来存放从配置文件即系出来的内容。

Mybatis自定义持久层框架

  1. 创建SqlSessionFactotyBuilder类,通过build实现以下两点:
  1. 使用dom4j 解析配置文件,将解析出来的文件封装到配置文件Configuration中;
  2. 创建SqlSessionFactory 对象 工厂类,生产sqlSession会话对象

Mybatis自定义持久层框架

Mybatis自定义持久层框架

  1. 持久层框架中,创建SqlSession接口及其实现类DefaultSqlSession,定义其对数据库的具体CRUD操作:

Mybatis自定义持久层框架

simpleExecutor执行器的update方法执行执行除查询意外的操作。

getMapper()是使用JDK动态代理为Test模块的Dao接口实现生成代理对象,代其执行sql的相关操作,并将结果返回给test模块相应的调用方法。

Mybatis自定义持久层框架

现在我们来看一下自定义的SimpleExecutor执行器:

在执行update方法时,会先执行before这个预处理方法,再执行sql;

Mybatis自定义持久层框架

Before方法中包括,注册驱动,获取数据库连接,获取sql语句,获取预处理对象,设置参数等。

Mybatis自定义持久层框架

验证1:查询所有

Mybatis自定义持久层框架

 

验证2:查询单个

Mybatis自定义持久层框架

 

验证3:新增

Mybatis自定义持久层框架

Mybatis自定义持久层框架

 

验证4:修改

Mybatis自定义持久层框架

Mybatis自定义持久层框架

验证5:删除

Mybatis自定义持久层框架

Mybatis自定义持久层框架