1、目标
在实现简易mybatis框架的过程中,始终围绕着一个核心,给DAO接口提供一个代理类,这个代理类能够完成用户定义的DAO接口到mapper.xml文件的映射关系,然后执行数据库操作。
大约 7 分钟
在实现简易mybatis框架的过程中,始终围绕着一个核心,给DAO接口提供一个代理类,这个代理类能够完成用户定义的DAO接口到mapper.xml文件的映射关系,然后执行数据库操作。
第一章节主要解决一个核心问题:为DAO接口创建映射器代理类,然后再使用代理类完成一些接口中的方法调用,但是在创建代理类的时候,需要具体指明代理的是哪一个类,其次,初步使用sqlSession对接口调用返回一些固定格式的结果。
因此本章中,需要实现对映射器的注册自动化,自动扫描mapper包下面的所有接口,自动进行注册,不需要在指定注册哪一个DAO类,另外需要对SqlSession进行抽象和包装,封装映射器代理和方法调用,方便后续进行扩展操作。
本章节第一个目标是实现自动扫描用户指定包路径下的所有DAO接口,然后自动创建DAO接口的代理类注册,因此就需要包装一个可以扫描整个包路径的组件完成代理类生成的注册器。
当我们设计一个ORM框架的时候,应该从三个角度考虑给用户提供最方便的操作,1、如何给用户提供简单易用的查询接口;2、如何最方便的让用户定义自己的sql操作语句3、如何将用户定义的操作语句放到数据库中去执行。
参考用户使用jdbc的查询方式,1、获取数据库连接,2、定义sql执行查询操作,3、数据库执行用户的操作并将结果进行封装,然后返回查询结果给用户,4、用户收到数据库返回的封装结果然后进行解析使用,可以看到用户操作数据库其实是一个固定的步骤,那这个过程其实就可以被精心设计和抽象封装,做成一个组件提供给大家使用,这也是mybatis的工作。