自定义持久层框架
JDBC 访问数据库的问题及解决方案
JDBC 问题总结 | 解决方案 |
---|---|
频繁创建、释放数据库连接 | 数据库连接池 |
SQL 语句及参数硬编码 | 配置文件 |
手动解析和封装结果集 | 反射、内省 |
设计思路
使用端:引入持久层框架的 jar 包
- 数据库的配置信息 sqlMapConfig.xml
- SQL 语句的配置信息 mapper.xml
框架本身:本质是对JDBC代码进行封装
- 加载配置文件,创建Resources类,方法为getResourceAsStream(String path)
- 创建两个JavaBean(容器对象),存放对配置文件解析出来的内容 Configuration:核心配置类,存放对sqlMapConfig.xml解析出来的内容 MappedStatement:映射配置类,存放对mapper.xml解析出来的内容
- 解析配置文件 创建类SqlSessionFactoryBuilder和方法build(InputStream in) 使用dom4j解析配置文件,将解析出来的内容封装到容器对象中 创建SqlSessionFactory对象,生产SqlSession会话对象
- 创建SqlSessionFactory接口及实现类DefaultSqlSessionFactory openSession():生产sqlSession
- 创建SqlSession接口及实现类DefaultSession 定义对数据库的CRUD操作:selectList(), selectOne(), update(), delete()
- 创建Executor接口及实现类SimpleExecutor 方法query(Configuration conf, MappedStatement st, Object… params):执行的就是JDBC代码