mybatis 源码分析 自定义持久层

文章讨论了JDBC存在的问题,如硬编码、频繁创建释放链接等,并提出了解决方案,如使用配置文件和链接池。接着,文章介绍了自定义持久层框架的设计思路,包括使用sqlMapConfig.xml和mapper.xml存储配置信息,通过dom4j解析文件并创建SqlSessionFactory,以及如何封装执行SQL操作。
摘要由CSDN通过智能技术生成

JDBC问题分析

  1. 数据库配置信息存在硬编码问题,不能灵活配置 (解决思路:配置文件)

  1. 频繁创建释放数据库链接,每次的sql执行都需要重新加在驱动,数据库创建链接(解决思路:链接池)

  1. sql语句、设置参数、获取结果集参数均存在硬编码问题(解决思路:配置文件)

  1. 逻辑代码和sql代码混合在一起,代码可读性低 (jdbc代码封装)

  1. 手动封装返回结果集,较为繁琐(解决思路:反射内省)

自定义持久层框架设计思路

使用端:(项目)引入自定义持久层框架的jar包

配置数据库配置信息、sql配置信息(sql语句、参数、返回类型)

(1)sqlMapConfig.xml 存数据库配置信息,存放在mapper.xml的全路径

(2)mapper.xml 存放sql配置信息

自定义持久层框架本身(工程): 本质是对jdbc代码进行封装

(1)加载配置信息:根据配置文件的路径,加载配置文件成字节输入流,存储在内存中

创建Resource类,方法:InputStream getResourceAsStream(String path)

(2)创建两个javaBean(容器对象): 存放配置文件解析出来的内容

configuration:核心配置类,存放 sqlMapConfing.xml解析出来的内容

mapperStatement: 映射配置类,存放mapper.xml解析出来的内容

(3)解析配置文件:dom4j

创建类: sqlSessionFactoryBuilder 方法 :build(InputStram in )

  1. 使用dom4j 解析配置文件,将解析出来的内容封装到容器对象中

  1. 创建SqlSessionFactory对象;生产sqlSession:会话对象(工厂模式)

(4) 创建sqlSessionFactory 接口及实现类DefaultSqlSessionFactory

1) open Session 生产sqlSession

(5) 创建SqlSession接口及实现类DefaultSession

定义对数据库的srud操作:selectList()

selectOne()

update()

delete()

(6)创建Executor 接口及实现类SimpleExecutor

query(Configuration,MapperStatement,Object... params);执行jdbc代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值