Mybatis自定义持久层框架
自定义持久层框架本质就是对JDBC代码进行了封装,下面我们结合test的模块一起进行详细解说:
- 首先,在test模块编写配置文件,主要包括数据源和sql配置两部分:
- Test模块通过 “Resources.getResourceAsStream”加载配置文件“SqlMapConfig.xml”的路径,该配置文件中已包含sql配置文件的路径“UserMapper.xml”。
持久层框架中,Resources 类的getResourceAsStream方法,会根据配置文件的路径,加载配置文件成字节输入流,存储在内存中。
- 在持久层框架中创建两个javaBean,用来存放从配置文件即系出来的内容。
- 创建SqlSessionFactotyBuilder类,通过build实现以下两点:
- 使用dom4j 解析配置文件,将解析出来的文件封装到配置文件Configuration中;
- 创建SqlSessionFactory 对象 工厂类,生产sqlSession会话对象
- 持久层框架中,创建SqlSession接口及其实现类DefaultSqlSession,定义其对数据库的具体CRUD操作:
simpleExecutor执行器的update方法执行执行除查询意外的操作。
getMapper()是使用JDK动态代理为Test模块的Dao接口实现生成代理对象,代其执行sql的相关操作,并将结果返回给test模块相应的调用方法。
现在我们来看一下自定义的SimpleExecutor执行器:
在执行update方法时,会先执行before这个预处理方法,再执行sql;
Before方法中包括,注册驱动,获取数据库连接,获取sql语句,获取预处理对象,设置参数等。
验证1:查询所有
验证2:查询单个
验证3:新增
验证4:修改
验证5:删除