自定义持久层框架设计思路:
-
使用端:
- 提供两部分配置信息:
数据库配置信息
、sql配置信息
(sql语句、 参数类型、返回值类型) - 使用配置文件来提供这两部分配置信息:
- sqlMapConfig.xml :存放数据库配置信息,存放mapper.xml的全路径
- mapper.xml :存放sql配置信息
- 提供两部分配置信息:
-
自定义持久层框架本身: 本质就是对JDBC代码进行了封装
- 加载配置文件:根据配置文件的路径,加载配置文件成字节输入流,存储在内存中
- 创建Resource类 方法:InputSteam getResourceAsStram(String path)
- 创建两个Java Bean :存放的就是对配置文件解析出来的内容
- Configuration:核心配置类:存放sqlMapConfig.xml 解析出来的内容
- MapedStatement :映射配置类:存放mapper.xml 解析出来的内容
- 解析配置文件 : dom4j
- 创建类 : SqlSessionFactoryBuilder ,方法:build(InputSteam in)
- 使用dom4j解析配置文件,将解析出来的内容封装到容器对象中
- 创建SqlSessionFactory对象;生产sqlSession:会话对象(工厂模式)
- 创建类 : SqlSessionFactoryBuilder ,方法:build(InputSteam in)
- 创建SqlSessionFactory接口和实现类DefaultSqlSessionFactory
- onpenSession() : 生产sqlSession
- 创建SqlSession接口及实现类DefaultSession
- 定义对数据库的crud操作
- selectList()
- selectOne()
- update()
- delete()
- 定义对数据库的crud操作
- 创建Executor接口及实现类SimpleExcutor实现类
- query(Configuration,MappedStatement,Object… params) : 执行的就是JDBC代码
- 加载配置文件:根据配置文件的路径,加载配置文件成字节输入流,存储在内存中