手写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状态码修改一下。业务集合在确保库中业务码都已完成,则取缓存中取结果进行聚合(此处需要接口中进行轮训处理)。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章