自定义持久层框架的思路

思路开始之前,考虑我们为什么做一个这样的框架,答案肯定是为了使用方便。那么怎么就使用方便了。这里先回顾一下,梦开始的时候,使用jdbc完成的一次查询。

1.加载数据库驱动

2.通过驱动管理器DriverManager获取数据库连接

3.定义SQL,?表示占位符

4.获取预处理prepareStatement

5.设置参数,第一个参数为sql语句中参数的序号(从1开始),第二参数为设置的参数值
prepareStatment.set(1, "uu");

6.向数据库发出sql执行查询,查询出结果集
resultSet = prepareStament.executeQuery();

7.遍历查询结果集
while(resultSet.nex) {
    ...
8.封装bean
}

根据以上的jdbc的查询链路。可以发现四个问题

  1. 数据库配置信息存在硬编码问题
  2. 频繁创建释放数据库连接问题
  3. sql语句、设置参数、获取结果集参数均存在硬编码问题
  4. 若结果集参数非常多,则手动封装返回结果集较为频繁

那么针对上面四个问题的解决方案及分析:

  • 其中1、3同属一个问题:硬编码问题。则这里我们都用配置文件来解决,以防发生配置变更时,我们不用修改代码来重新上线。
  • 但是还要考虑,这里的配置文件我们是把他们放一起还是分开放,很明显要分开放,因为数据库配置信息几乎甚少做变动,而sql的一些配置则是经常根据业务进行变动。所以,这里我们分开存放配置:数据库配置信息,sql配置信息
  • 对于2,我们采用数据库连接池,比如现在市面上的Druid、HikariCP、C3P0、DBCP等等
  • 对于4,我们引用反射内省的技术

然后我们应用上述解决方案来思考框架的设计思路:

一、首先从使用者,也就是项目本身考虑:我们肯定是要引用自定义持久层框架的jar包。那么这里,若想让持久层框架奏效,那么首先得配置吧。这里都是用户自定义的,两方面的配置:

  1. 数据库配置信息
  2. sql配置信息

二、就自定持久层框架本身来讲,其实就是对jdbc代码进行了封装

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值