1.2 自定义持久层框架思路分析
使用端:(项目)引入自定义持久层框架的jar包
提供两部分配置信息:数据库配置信息、SQL配置信息(SQL语句、参数类型、返回值类型)
sqlMapConfig.xml:存放数据库配置信息
mapper.xml:存放sql配置信息
自定义框架层本身:(工程)本质就是对JDBC代码进行封装
加载配置文件:根据配置文件路径,加载配置文件成字节输入流,存储在内存中
创建Resource类,方法:InputStream getResourceAsStream(String path)
创建两个JavaBean(容器对象),存放的就是配置文件解析出来的内容
Configuration:核心配置类,存放sqlMapConfig.xml解析出来的内容
MapperStatement:映射配置类,存放mapper.xml解析出来的内容
解析配置文件:dom4j
创建类:SqlSessionFactoryBuilder包含方法build(InputStream in)主要做两件事:
3.1 使用dom4j解析配置文件,将解析出来的内容封装到容器对象中
3.2 创建sqlSessionFactory对象,生产SqlSession,即会话对象(增删改查都封装在这里),这里用到了工厂模式,降低程序间的耦合(不直接new一个SqlSession)
创建SqlSessionFactory接口及实现类DefaultSqlSessionFactory,方法openSession()用以生产sqlSession
创建SqlSession接口及实现类DefaultSession,定义对数据库的CRUD操作(selectList、selectOne、update……)
创建Executor接口及实现类SimpleExecutor实现类,query(Configuration,MapperStatement,MapperStatement,Object... params)方法,执行的就是JDBC代码