手写orm框架思路

orm框架思路:

分为两步,第一步,解析sql,封装完整可执行业务sql。第二步,封装链接池,封装方法。

解析sql:

sql文件配置到xml文件中, 通过dom,sax进行xml文件解析,解析过程中会对逻辑运行标签进行运算(Aviator,groovy等框架对逻辑运算有很好的支持),根据逻辑运算进行sql文件的配装,配装完整的sql根据对应业务id存储到缓存中, 以上操作都可以在项目启动时可以用@postConstruct进行预加载,也可以在使用时进行加载。

封装连接池,封装调用方法:

把不同数据库链接参数通过druiddatasource构建不同链接池,以数据库类型为key,对应的连接池为value进行缓存,此处同样在项目启动时进行处理。数据库的对应的操作方法,在druiddatasource.getConnection基础上进行封装(此处可采用jdbc的基础操作进行封装)。sql并行处理,原理是采用Callable、Future和FutureTask 异步结果返回并进行聚合,此外可以采用redis等缓存,通过多线程执行查询sql,返回每个业务线id,最终结果根据业务id进行结果聚合,但是此处因为不同业务sql执行时间的不同,不能准确的知道整个业务集合具体返回时间。可以把每个业务线在执行前把业务id和状态码进行保存,每个线程中把业务sql执行成功的对应业务id状态码修改一下。业务集合在确保库中业务码都已完成,则取缓存中取结果进行聚合(此处需要接口中进行轮训处理)。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值