基于自建数据库连接池的关系型数据库的访问方法和系统技术方案

技术编号:11049306 阅读:91 留言:0更新日期:2015-02-18 14:32
本发明专利技术提供一种基于自建数据库连接池的关系型数据库的访问方法和系统,其中方法包括:建立访问关系型数据库的单例模式的数据库连接池;创建设定数量的访问所述关系型数据库的数据库连接,并将数据库连接存放到所述数据库连接池中;获取用户对所述关系型数据库进行的数据库操作,并从数据库连接池申请一个数据库连接;根据所述申请的数据库连接,在所述数据库连接上对所述关系型数据库执行所述数据库操作。本发明专利技术的技术方案,可以实现快速和高效的数据库访问;数据库操作效率更高,实现将大量实时数据快速存储到数据库,极大提高了数据采集平台的处理效率,可以达到商用实时数据库的效果。

【技术实现步骤摘要】

本专利技术涉及数据库应用
,特别是涉及一种基于自建数据库连接池的关系型数据库的访问方法和系统
技术介绍
随着我国电力需求侧管理城市综合试点工作开展,需要接入大量用电企业的实时用电数据来进行分析和处理,对数据采集平台提出了很高的要求,既要实现大量的实时数据快速采集,同时又要快速存储到数据库。例如,在国内首批电力需求侧管理城市综合试点的四个城市之一的佛山市,要完成试点任务和目标,则需要接入大约2000家企业的实时用电数据,每个企业至少安装30个表计,要求接入的企业数据多达85项,采集频度达到为5分钟,对于现有的数据采集平台来说,要实现如此多的实时数据快速采集,数据库存储技术将会是一大瓶颈。由于要进行海量实时数据的采集和存储,采用关系型数据库时,现有数据库处理技术很难做到如此高效的处理,数据采集成功率和完整率难以满足采集海量数据的要求,如果采用商品化的实时数据库,要存储如此多的数据点数,成本高昂,现实意义不大。综合上述分析,现有数据库处理技术难以满足海量数据的快速存储。
技术实现思路
基于此,有必要针对上述问题,提供一种数据库访问效率更高的基于自建数据库连接池的关系型数据库的访问方法和系统。一种基于自建数据库连接池的关系型数据库的访问方法,包括如下步骤:建立访问关系型数据库的单例模式的数据库连接池;创建设定数量的访问所述关系型数据库的数据库连接,并将数据库连接存放到所述数据库连接池中;获取用户对所述关系型数据库进行的数据库操作,并从数据库连接池申请一个数据库连接;根据所述申请的数据库连接,在所述数据库连接上对所述关系型数据库执行所述数据库操作。一种基于自建数据库连接池的关系型数据库的访问系统,包括:连接池建立模块,用于建立访问关系型数据库的单例模式的数据库连接池;连接创建模块,用于创建设定数量的访问所述关系型数据库的数据库连接,并将数据库连接存放到所述数据库连接池中;连接申请模块,用于获取用户对所述关系型数据库进行的数据库操作,并从数据库连接池申请一个数据库连接;数据库操作模块,用于根据所述申请的数据库连接,在所述数据库连接上对所述关系型数据库执行所述数据库操作。上述基于自建数据库连接池的关系型数据库的访问方法和系统,通过建立访问关系型数据库的数据库连接池,并一次性把数据库连接建好,放在数据库连接池中待用,免去了频繁建立数据库连接、断开数据库连接的时间开销,;当需要对数据库进行操作时,用户只需要从数据库连接池申请一个数据库连接,获取到数据库连接后,就可以通过该数据库连接对数据库进行操作,数据库访问效率更高,实现将大量数据实时数据快速存储到数据库,极大提高了数据采集平台的处理效率,可以实现实时数据库的效果。附图说明图1为一个实施例的基于自建数据库连接池的关系型数据库的访问方法流程图;图2为另一个实施例的基于自建数据库连接池的关系型数据库的访问方法流程图;图3为基于本专利技术基于自建数据库连接池的关系型数据库的访问方法的原理框图;图4为一个实施例的基于自建数据库连接池的关系型数据库的访问系统结构示意图;图5为另一个实施例的基于自建数据库连接池的关系型数据库的访问系统结构示意图。具体实施方式下面结合附图对本专利技术的基于自建数据库连接池的关系型数据库的访问方法和系统的具体实施方式作详细描述。参考图1所示,图1为一个实施例的基于自建数据库连接池的关系型数据库的访问方法流程图,包括如下步骤:步骤S10,建立访问关系型数据库的单例模式的数据库连接池。在此步骤中,可以采用Oracle数据库,利用Oracle数据库的OCCI接口,在Linux环境下采用C++语言为开发工具构建单例模式数据连接池,;数据库连接池采用单例模式,保证只可能初始化一次。其中,OCCI是一套应用程序编程接口。步骤S20,创建设定数量的访问所述关系型数据库的数据库连接,并将数据库连接存放到所述数据库连接池中。在此步骤中,可以根据需要使用数据库连接的应用,一次性把一定数量的数据库连接建好,一般只需要花费40多毫秒的时间,放在连接池中给需要使用数据连接的应用使用,免去了频繁建立数据库连接、断开数据库连接的时间开销。在一个实施例中,步骤S20的过程具体包括如下:步骤S201,初始化所述数据库连接池,建立设定数量的数据库连接,并将其置于所述数据库连接池内。对于上述建立设定数量的数据库连接的方法,可以利用OCCI接口建立设定数量的数据库连接,在所述数据库连接上封装对外使用的接口函数,包括ExecuteSql,Execute,Close Record Set,COMMIT,ROLLBAC K等。步骤S202,保存所述数据库连接;在本实施例中,可以采用队列queue<DBConnection*>m_connpool来保存数据库连接。步骤S30,获取用户(即数据库连接使用者)对所述关系型数据库进行的数据库操作,并从数据库连接池申请一个数据库连接。在此步骤中,用户需要对所述关系型数据库进行数据库操作时,从数据库连接池申请一个数据库连接来使用,通过该数据库连接实现对数据库的操作。在一个实施例中,步骤S30的过程具体包括如下:步骤S301,从数据库连接池获取数据库连接。具体的,可以调用数据库连接的对外接口函数GetConnect()获取数据库连接,该函数首先获取数据库连接时的队列锁。由此,可以保证同一时刻只有一个用户从数据库连接池获取数据库连接。步骤S302,获取数据库连接池队列锁;判断所述队列是否为非空,若是,则提取队列的首个数据库连接返回至所述用户,将所述数据库连接从所述队列中删除;否则等待有空闲连接重新加入到数据库连接池队列的触发信号。上述实施例中,如果保存数据库连接的队列为空,说明当前没有空闲的数据库连接,,等待触发信号进行唤醒。步骤S40,根据所述申请的数据库连接,在所述数据库连接上对所述关系型数据库执行所述数据库操作。此步骤中用户可以通过申请到的数据库连接对关系型数据库执行相应的数据库操作。在一个实施例中,步骤S40的数据库操作过程可以如下:调用封装在数据库连接的接口函数,根据所述申请的数据库连接对所述关系型数据库进行访问操作。参考图2所示,图2为另一个实施例的基于自建数据库连接池的关系型数据库的访问方法流程图,所述方法还包括步骤S50。步骤本文档来自技高网...

【技术保护点】
一种基于自建数据库连接池的关系型数据库的访问方法,其特征在于,包括如下步骤:建立访问关系型数据库的单例模式的数据库连接池;创建设定数量的访问所述关系型数据库的数据库连接,并将数据库连接存放到所述数据库连接池中;获取用户对所述关系型数据库进行的数据库操作,并从数据库连接池申请一个数据库连接;根据所述申请的数据库连接,在所述数据库连接上对所述关系型数据库执行所述数据库操作。

【技术特征摘要】
1.一种基于自建数据库连接池的关系型数据库的访问方法,其特征在于,
包括如下步骤:
建立访问关系型数据库的单例模式的数据库连接池;
创建设定数量的访问所述关系型数据库的数据库连接,并将数据库连接存
放到所述数据库连接池中;
获取用户对所述关系型数据库进行的数据库操作,并从数据库连接池申请
一个数据库连接;
根据所述申请的数据库连接,在所述数据库连接上对所述关系型数据库执
行所述数据库操作。
2.根据权利要求1所述的基于自建数据库连接池的关系型数据库的访问方
法,其特征在于,创建设定数量的访问所述关系型数据库的数据库连接,并将
数据库连接存放到所述数据库连接池中的步骤包括:
初始化所述数据库连接池,建立设定数量的数据库连接,并将其置于所述
数据库连接池内;
通过队列保存所述数据库连接。
3.根据权利要求1或2所述的基于自建数据库连接池的关系型数据库的访
问方法,其特征在于,还包括:
在所述数据库操作完成后,将所述数据库连接返回至所述数据库连接池。
4.根据权利要求1所述的基于自建数据库连接池的关系型数据库的访问方
法,其特征在于,建立设定数量的数据库连接的步骤包括:
利用OCCI接口建立数据库连接,在所述数据库连接上封装对外使用的接口
函数。
5.根据权利要求3所述的基于自建数据库连接池的关系型数据库的访问方
法,其特征在于,所述从数据库连接池申请一个数据库连接的步骤包括:
获取数据库连接池队列锁;判断所述队列是否为非空,若是,则提取队列
的首个数据库连接返回至所述用户,将所述数据库连接从所述队列中删除;否
则等待有空闲连接重新加入到数据库连接池队列的触发信号。
6.根据权利要求3所述的基于自建数据库连接池的关系型数据库的访问方
法,其特征在于,从数...

【专利技术属性】
技术研发人员:罗宇罗建于涛何德卫郑展陈文浩周智荣黄宇魁项滦易国亮王赛李畅
申请(专利权)人:广东电网有限责任公司佛山供电局广东卓维网络有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1