CN110837531B - 数据源读写的分离方法、装置及计算机可读存储介质 - Google Patents
数据源读写的分离方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110837531B CN110837531B CN201910975811.6A CN201910975811A CN110837531B CN 110837531 B CN110837531 B CN 110837531B CN 201910975811 A CN201910975811 A CN 201910975811A CN 110837531 B CN110837531 B CN 110837531B
- Authority
- CN
- China
- Prior art keywords
- data
- read
- data source
- data set
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及一种大数据技术,揭露了一种数据源读写的分离方法,包括:基于原始数据库的所属类型,创建所述原始数据库的标准数据连接池;接收用户输入的数据源,将所述数据源转换为业务数据源,生成逻辑操作命令;当所述逻辑操作命令为读操作时,通过所述标准数据连接池向所述原始数据库进行数据读取,得到初始化数据集,完成所述读操作;对所述初始化数据集进行预处理操作,得到持久化标准数据集;当所述逻辑操作命令为写操作时,根据所述写操作中的参数得到目标数据库,将所述持久化标准数据集写入所述目标数据库中,完成所述写操作。本发明还提出一种数据源读写的分离装置以及一种计算机可读存储介质。本发明实现了数据源读写的高效分离。
Description
技术领域
本发明涉及大数据技术领域,尤其涉及一种数据源读写的分离方法、装置及计算机可读存储介质。
背景技术
目前数据库读写分离数据源大多数利用所述数据源创建不同的事务进行管理,然后不同的事务管理不同的DAO(Data Access Object,数据访问对象),这样的事务管理每一个的DAO层只对应一个数据源,使用不同的数据源必须创建多个DAO层,使得系统设计不仅庞大,而且读写的范围有限,再加上系统在读写数据时和数据库的直接对接,缺乏对数据库状态的监管,使得在读写数据时容易出现异常的情况,降低效率。
发明内容
本发明提供一种数据源读写的分离方法、装置及计算机可读存储介质,其主要目的在于当用户在数据库中进行数据源读写时,给用户提供一种高效的数据源读写分离的方法。
为实现上述目的,本发明提供的一种数据源读写的分离方法,包括:
基于原始数据库的所属类型,创建所述原始数据库的连接池,对所述连接池进行初始化处理,得到标准数据连接池;
通过预先构建的浏览器/服务器架构接收用户输入的数据源,将所述数据源转换为业务数据源,根据所述业务数据源,建立所述浏览器/服务器架构与所述标准数据连接池的通信机制,并生成逻辑操作命令;
当所述逻辑操作命令为读操作时,在所述浏览器/服务器架构中创建读-数据访问对象的操作层,生成读日志注解,根据所述读日志注解,及调用线程共享变量类通过所述通信机制向所述原始数据库进行数据读取,得到初始化数据集,完成所述读操作;
对所述初始化数据集进行预处理操作,得到持久化标准数据集;
当所述逻辑操作命令为写操作时,在所述浏览器/服务器架构中创建写-数据访问对象的操作层,生成写日志注解,根据所述写日志注解中的参数得到目标数据库,将所述持久化标准数据集写入所述目标数据库中,完成所述写操作。
可选地,所述对所述连接池进行初始化处理,得到标准数据连接池,包括:
预设所述连接池的连接数目、最小连接数目、最大连接数目、事务最长等待时间以及连接最大引用次数,得到所述标准数据连接池。
可选地,所述浏览器/服务器架构包括表示层、业务层、持久化层和数据层;及通过预先构建的浏览器/服务器架构接收用户输入的数据源,将所述数据源转换为业务数据源,包括:
通过所述表示层接收所述用户输入的数据源,将所述用户输入的数据源发送至Structs2模块中,通过所述Structs2模块对所述数据源进行解析处理,生成所述业务数据源,其中,所述Structs2模块位于所述表示层与所述业务层之间。
可选地,所述根据所述读日志注解,及调用线程共享变量类通过所述通信机制向所述原始数据库进行数据读取,得到初始化数据集,完成所述读操作,包括:
将所述标准数据连接池中参与处理的数据连接信息加载至所述读日志注解中;
通过所述线程共享变量类中的set方法对所述读日志注解中的数据连接信息进行读取,得到被读取数据的路径,以向所述原始数据库进行数据的读取,得到所述初始化数据集;
将所述初始化数据集存入所述预先创建的系统上下文对象中,完成所述读操作。
可选地,所述对所述初始化数据集进行预处理操作,得到持久化标准数据集,包括:
对所述初始化数据集进行异常值删除、排序整理,生成标准数据集;
通过所述浏览器/服务器架构的持久化层对所述标准数据集进行持久化操作,得到所述持久化标准数据集。
此外,为实现上述目的,本发明还提供一种数据源读写的分离装置,该装置包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的数据源读写的分离程序,所述数据源读写的分离程序被所述处理器执行时实现如下步骤:
基于原始数据库的所属类型,创建所述原始数据库的连接池,对所述连接池进行初始化处理,得到标准数据连接池;
通过预先构建的浏览器/服务器架构接收用户输入的数据源,将所述数据源转换为业务数据源,根据所述业务数据源,建立所述浏览器/服务器架构与所述标准数据连接池的通信机制,并生成逻辑操作命令;
当所述逻辑操作命令为读操作时,在所述浏览器/服务器架构中创建读-数据访问对象的操作层,生成读日志注解,根据所述读日志注解,及调用线程共享变量类通过所述通信机制向所述原始数据库进行数据读取,得到初始化数据集,完成所述读操作;
对所述初始化数据集进行预处理操作,得到持久化标准数据集;
当所述逻辑操作命令为写操作时,在所述浏览器/服务器架构中创建写-数据访问对象的操作层,生成写日志注解,根据所述写日志注解中的参数得到目标数据库,将所述持久化标准数据集写入所述目标数据库中,完成所述写操作。
可选地,所述对所述连接池进行初始化处理,得到标准数据连接池,包括:
预设所述连接池的连接数目、最小连接数目、最大连接数目、事务最长等待时间以及连接最大引用次数,得到所述标准数据连接池。
可选地,所述浏览器/服务器架构包括表示层、业务层、持久化层和数据层;及通过预先构建的浏览器/服务器架构接收用户输入的数据源,将所述数据源转换为业务数据源,包括:
通过所述表示层接收所述用户输入的数据源,将所述用户输入的数据源发送至Structs2模块中,通过所述Structs2模块对所述数据源进行解析处理,生成所述业务数据源,其中,所述Structs2模块位于所述表示层与所述业务层之间。
可选地,所述根据所述读日志注解,及调用线程共享变量类通过所述通信机制向所述原始数据库进行数据读取,得到初始化数据集,完成所述读操作,包括:
将所述标准数据连接池中参与处理的数据连接信息加载至所述读日志注解中;
通过所述线程共享变量类中的set方法对所述读日志注解中的数据连接信息进行读取,得到被读取数据的路径,以向所述原始数据库进行数据的读取,得到所述初始化数据集;
将所述初始化数据集存入所述预先创建的系统上下文对象中,完成所述读操作。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据源读写的分离程序,所述数据源读写的分离程序可被一个或者多个处理器执行,以实现如上所述的数据源读写的分离方法的步骤。
本发明提出的数据源读写的分离方法、装置及计算机可读存储介质,在用户进行数据源读写的分离时,结合原始数据库的所属类型,创建标准数据连接池,利用预先构建的浏览器/服务器架构生成所述数据源的读日志注解和写日志注解,通过所述标准数据连接池向所述原始数据库进行所述数据源读写的操作,完成所述数据源的读写分离,从而可以给用户呈现出精准的数据源读写的分离结果。
附图说明
图1为本发明一实施例提供的数据源读写的分离方法的流程示意图;
图2为本发明一实施例提供的数据源读写的分离装置的内部结构示意图;
图3为本发明一实施例提供的数据源读写的分离装置中数据源读写的分离程序的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种数据源读写的分离方法。参照图1所示,为本发明一实施例提供的数据源读写的分离方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
在本实施例中,数据源读写的分离方法包括:
S1、基于原始数据库的所属类型,创建所述原始数据库的连接池,对所述连接池进行初始化处理,得到标准数据连接池。
本发明较佳实施例中,所述原始数据库的所属类型包括:关系型数据库与非关系型数据库,其中,所述关系型数据库可以包括:Oracle数据库、MySQL数据库等,所述非关系型数据库可以包括:键值存储数据库、列存储数据库、面向文档数据库以及图形数据库等。
本发明根据所述原始数据库的所属类型分别建立不同的连接池,所述连接池指的是存放各个数据连接的缓冲池,当读取数据时,系统首先访问该数据所在的原始数据库对应的连接池,获取所述原始数据库的连接,解析出所述原始数据库的路径信息,根据所述路径信息连接并访问所述原始数据库,从而完成系统和数据库的连接。其中,所存放的数据连接数目是由业务性质来决定,例如:如果某业务需要多次引用所述原始数据库或者所述原始数据库需要被多个业务引用,则增加数据连接数目;反之,减少连接数目。
进一步地,本发明中对所述连接池进行初始化处理,得到标准数据连接池。所述初始化处理包括:预设所述连接池的连接数目、最小连接数目、最大连接数目、事务最长等待时间以及连接最大引用次数,得到所述标准数据连接池。其中,所述最小连接数目用于标定原始数据库将被引用的最小次数;所述最大连接数目用于用户请求连接原始数据库时,查看标准数据连接池中是否有未被引用的空闲连接。
S2、通过预先构建的浏览器/服务器架构接收用户输入的数据源,将所述数据源转换为业务数据源,根据所述业务数据源,建立所述浏览器/服务器架构与所述标准数据连接池的通信机制,并生成逻辑操作命令。
本发明较佳实施例中,所述浏览器/服务器架构(Browser/Server,B/S)包括表示层、业务层、持久化层和数据层。进一步地,本发明通过所述表示层接收所述用户输入的数据源,将所述用户输入的数据源发送至Structs2模块,通过所述Structs2模块对所述数据源进行解析处理,生成所述业务数据源,其中,所述Structs2模块位于所述表示层与所述业务层之间。所述解析处理是将所述用户输入的数据源中文字请求转化为可以对数据库进行操作的逐条代码。
进一步地,本发明较佳实施例中,所述业务层根据所述业务数据源中的具体要求,向所述标准数据连接池提出数据连接需求,确定所述标准数据连接池中参与处理的连接数目以及类型,从而建立所述通信机制,同时,本发明通过AOP(Aspect OrientedProgramming,面向切面编程)语句切面机制,将所述业务数据源生成所述逻辑操作命令。其中,所述AOP语句切面机制是一种将业务功能编码语句聚合成语句模块的聚合机制,用于将原本逐条的逻辑操作语句集合为所述逻辑操作命令。
S3、当所述逻辑操作命令为读操作时,在所述浏览器/服务器架构中创建读-数据访问对象的操作层,生成读日志注解,根据所述读日志注解,及调用线程共享变量类通过所述通信机制向所述原始数据库进行数据读取,得到初始化数据集,完成所述读操作。
本发明较佳实施例中,当所述逻辑操作命令是读操作时,在所述B/S架构中业务层中创建创建读-数据访问对象(read-DAO)的操作层,所述read-DAO操作层是为了方便读取数据,在所述业务层中创建的读取操作区域,并生成读日志注解。本发明将所述标准数据连接池中参与处理的数据连接信息加载至所述读日志注解中。其中,所述读日志注解用于存放读取操作的所有参数以及被读取数据的所有说明信息。
进一步地,本发明通过所述线程共享变量(Threadlocal)类中的set方法对所述读日志注解中的数据连接信息进行读取,得到被读取数据的路径,通过所述建立的通信机制,从而向所述原始数据库进行数据的读取,得到所述初始化数据集,并将所述初始化数据集存入所述预先创建的系统上下文(SystemContext)对象中,完成所述读操作。
S4、对所述初始化数据集进行预处理操作,得到持久化标准数据集。
本发明较佳实施例中,所述预处理操作包括:调用TransactionFilter模块对所述初始化数据集进行异常值删除、排序整理,生成标准数据集;通过所述B/S架构的持久化层对所述标准数据集进行持久化操作,得到所述持久化标准数据集。所述TransactionFilter模块指的是对写入目标数据库或者目标服务器的数据进行清洗、填充以及异常处理的模块。
S5、当所述逻辑操作命令为写操作时,在所述浏览器/服务器架构中创建写-数据访问对象的操作层,生成写日志注解,根据所述写日志注解中的写入参数得到目标数据库,将所述持久化标准数据集写入所述目标数据库中,完成所述写操作。
本发明较佳实施例中,当所述逻辑操作命令是写操作时,在所述B/S架构中业务层中创建创建写-数据访问对象(write-DAO)的操作层,生成所述写日志注解,并将上述Threadlocal类中需要的写入参数加载至所述写日志注解中,并通过调用Service模块进行选择数据库,从而得到所述目标数据库,将所述持久化标准数据集写入所述目标数据库中,并上传至所述B/S架构的数据层中,完成所述写操作。
发明还提供一种数据源读写的分离装置。参照图2所示,为本发明一实施例提供的数据源读写的分离装置的内部结构示意图。
在本实施例中,所述数据源读写的分离装置1可以是PC(Personal Computer,个人电脑),或者是智能手机、平板电脑、便携计算机等终端设备,也可以是一种服务器等。该数据源读写的分离装置1至少包括存储器11、处理器12,通信总线13,以及网络接口14。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是数据源读写的分离装置1的内部存储单元,例如该数据源读写的分离装置1的硬盘。存储器11在另一些实施例中也可以是数据源读写的分离装置1的外部存储设备,例如数据源读写的分离装置1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括数据源读写的分离装置1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于数据源读写的分离装置1的应用软件及各类数据,例如数据源读写的分离程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行数据源读写的分离程序01等。
通信总线13用于实现这些组件之间的连接通信。
网络接口14可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在该装置1与其他电子设备之间建立通信连接。
可选地,该装置1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在数据源读写的分离装置1中处理的信息以及用于显示可视化的用户界面。
图2仅示出了具有组件11-14以及数据源读写的分离程序01的数据源读写的分离装置1,本领域技术人员可以理解的是,图1示出的结构并不构成对数据源读写的分离装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在图2所示的装置1实施例中,存储器11中存储有数据源读写的分离程序01;处理器12执行存储器11中存储的数据源读写的分离程序01时实现如下步骤:
步骤一、基于原始数据库的所属类型,创建所述原始数据库的连接池,对所述连接池进行初始化处理,得到标准数据连接池。
本发明较佳实施例中,所述原始数据库的所属类型包括:关系型数据库与非关系型数据库,其中,所述关系型数据库可以包括:Oracle数据库、MySQL数据库等,所述非关系型数据库可以包括:键值存储数据库、列存储数据库、面向文档数据库以及图形数据库等。
本发明根据所述原始数据库的所属类型分别建立不同的连接池,所述连接池指的是存放各个数据连接的缓冲池,当读取数据时,系统首先访问该数据所在的原始数据库对应的连接池,获取所述原始数据库的连接,解析出所述原始数据库的路径信息,根据所述路径信息连接并访问所述原始数据库,从而完成系统和数据库的连接。其中,所存放的数据连接数目是由业务性质来决定,例如:如果某业务需要多次引用所述原始数据库或者所述原始数据库需要被多个业务引用,则增加数据连接数目;反之,减少连接数目。
进一步地,本发明中对所述连接池进行初始化处理,得到标准数据连接池。所述初始化处理包括:预设所述连接池的连接数目、最小连接数目、最大连接数目、事务最长等待时间以及连接最大引用次数,得到所述标准数据连接池。其中,所述最小连接数目用于标定原始数据库将被引用的最小次数;所述最大连接数目用于用户请求连接原始数据库时,查看标准数据连接池中是否有未被引用的空闲连接。
步骤二、通过预先构建的浏览器/服务器架构接收用户输入的数据源,将所述数据源转换为业务数据源,根据所述业务数据源,建立所述浏览器/服务器架构与所述标准数据连接池的通信机制,并生成逻辑操作命令。
本发明较佳实施例中,所述浏览器/服务器架构(Browser/Server,B/S)包括表示层、业务层、持久化层和数据层。进一步地,本发明通过所述表示层接收所述用户输入的数据源,将所述用户输入的数据源发送至Structs2模块,通过所述Structs2模块对所述数据源进行解析处理,生成所述业务数据源,其中,所述Structs2模块位于所述表示层与所述业务层之间。所述解析处理是将所述用户输入的数据源中文字请求转化为可以对数据库进行操作的逐条代码。
进一步地,本发明较佳实施例中,所述业务层根据所述业务数据源中的具体要求,向所述标准数据连接池提出数据连接需求,确定所述标准数据连接池中参与处理的连接数目以及类型,从而建立所述通信机制,同时,本发明通过AOP(Aspect OrientedProgramming,面向切面编程)语句切面机制,将所述业务数据源生成所述逻辑操作命令。其中,所述AOP语句切面机制是一种将业务功能编码语句聚合成语句模块的聚合机制,用于将原本逐条的逻辑操作语句集合为所述逻辑操作命令。
步骤三、当所述逻辑操作命令为读操作时,在所述浏览器/服务器架构中创建读-数据访问对象的操作层,生成读日志注解,根据所述读日志注解,及调用线程共享变量类通过所述通信机制向所述原始数据库进行数据读取,得到初始化数据集,完成所述读操作。
本发明较佳实施例中,当所述逻辑操作命令是读操作时,在所述B/S架构中业务层中创建创建读-数据访问对象(read-DAO)的操作层,所述read-DAO操作层是为了方便读取数据,在所述业务层中创建的读取操作区域,并生成读日志注解。本发明将所述标准数据连接池中参与处理的数据连接信息加载至所述读日志注解中。其中,所述读日志注解用于存放读取操作的所有参数以及被读取数据的所有说明信息。
进一步地,本发明通过所述线程共享变量(Threadlocal)类中的set方法对所述读日志注解中的数据连接信息进行读取,得到被读取数据的路径,通过所述建立的通信机制,从而向所述原始数据库进行数据的读取,得到所述初始化数据集,并将所述初始化数据集存入所述预先创建的系统上下文(SystemContext)对象中,完成所述读操作。
步骤四、对所述初始化数据集进行预处理操作,得到持久化标准数据集。
本发明较佳实施例中,所述预处理操作包括:调用TransactionFilter模块对所述初始化数据集进行异常值删除、排序整理,生成标准数据集;通过所述B/S架构的持久化层对所述标准数据集进行持久化操作,得到所述持久化标准数据集。所述TransactionFilter模块指的是对写入目标数据库或者目标服务器的数据进行清洗、填充以及异常处理的模块。
步骤五、当所述逻辑操作命令为写操作时,在所述浏览器/服务器架构中创建写-数据访问对象的操作层,生成写日志注解,根据所述写日志注解中的写入参数得到目标数据库,将所述持久化标准数据集写入所述目标数据库中,完成所述写操作。
本发明较佳实施例中,当所述逻辑操作命令是写操作时,在所述B/S架构中业务层中创建创建写-数据访问对象(write-DAO)的操作层,生成所述写日志注解,并将上述Threadlocal类中需要的写入参数加载至所述写日志注解中,并通过调用Service模块进行选择数据库,从而得到所述目标数据库,将所述持久化标准数据集写入所述目标数据库中,并上传至所述B/S架构的数据层中,完成所述写操作。
可选地,在其他实施例中,数据源读写的分离程序还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述数据源读写的分离程序在数据源读写的分离装置中的执行过程。
例如,参照图3所示,为本发明数据源读写的分离装置一实施例中的数据源读写的分离程序的程序模块示意图,该实施例中,所述数据源读写的分离程序可以被分割为连接池建立模块10、操作命令生成模块20、读操作模块30以及写操作模块40,示例性地:
所述连接池建立模块10用于:基于原始数据库的所属类型,创建所述原始数据库的连接池,对所述连接池进行初始化处理,得到标准数据连接池。
所述操作命令生成模块20用于:通过预先构建的浏览器/服务器架构接收用户输入的数据源,将所述数据源转换为业务数据源,根据所述业务数据源,建立所述浏览器/服务器架构与所述标准数据连接池的通信机制,并生成逻辑操作命令。
所述读操作模块30用于:当所述逻辑操作命令为读操作时,在所述浏览器/服务器架构中创建读-数据访问对象的操作层,生成读日志注解,根据所述读日志注解,及调用线程共享变量类通过所述通信机制向所述原始数据库进行数据读取,得到初始化数据集,完成所述读操作。
所述写操作模块40用于:对所述初始化数据集进行预处理操作,得到持久化标准数据集,当所述逻辑操作命令为写操作时,在所述浏览器/服务器架构中创建写-数据访问对象的操作层,生成写日志注解,根据所述写日志注解中的参数得到目标数据库,将所述持久化标准数据集写入所述目标数据库中,完成所述写操作。
上述连接池建立模块10、操作命令生成模块20、读操作模块30以及写操作模块40等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有数据源读写的分离程序,所述数据源读写的分离程序可被一个或多个处理器执行,以实现如下操作:
基于原始数据库的所属类型,创建所述原始数据库的连接池,对所述连接池进行初始化处理,得到标准数据连接池;
通过预先构建的浏览器/服务器架构接收用户输入的数据源,将所述数据源转换为业务数据源,根据所述业务数据源,建立所述浏览器/服务器架构与所述标准数据连接池的通信机制,并生成逻辑操作命令;
当所述逻辑操作命令为读操作时,在所述浏览器/服务器架构中创建读-数据访问对象的操作层,生成读日志注解,根据所述读日志注解,及调用线程共享变量类通过所述通信机制向所述原始数据库进行数据读取,得到初始化数据集,完成所述读操作;
对所述初始化数据集进行预处理操作,得到持久化标准数据集;
当所述逻辑操作命令为写操作时,在所述浏览器/服务器架构中创建写-数据访问对象的操作层,生成写日志注解,根据所述写日志注解中的参数得到目标数据库,将所述持久化标准数据集写入所述目标数据库中,完成所述写操作。
本发明计算机可读存储介质具体实施方式与上述数据源读写的分离装置和方法各实施例基本相同,在此不作累述。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (5)
1.一种数据源读写的分离方法,其特征在于,所述方法包括:
基于原始数据库的所属类型,创建所述原始数据库的连接池,对所述连接池进行初始化处理,得到标准数据连接池;
通过预先构建的浏览器/服务器架构接收用户输入的数据源,将所述数据源转换为业务数据源,根据所述业务数据源,建立所述浏览器/服务器架构与所述标准数据连接池的通信机制,并生成逻辑操作命令;
当所述逻辑操作命令为读操作时,在所述浏览器/服务器架构中创建读-数据访问对象的操作层,生成读日志注解,根据所述读日志注解,及调用线程共享变量类通过所述通信机制向所述原始数据库进行数据读取,得到初始化数据集,完成所述读操作;
对所述初始化数据集进行预处理操作,得到持久化标准数据集;
当所述逻辑操作命令为写操作时,在所述浏览器/服务器架构中创建写-数据访问对象的操作层,生成写日志注解,根据所述写日志注解中的参数得到目标数据库,将所述持久化标准数据集写入所述目标数据库中,完成所述写操作;
其中,所述浏览器/服务器架构包括表示层、业务层、持久化层和数据层;所述通过预先构建的浏览器/服务器架构接收用户输入的数据源,将所述数据源转换为业务数据源,包括:通过所述表示层接收所述用户输入的数据源,将所述用户输入的数据源发送至Structs2模块中,通过所述Structs2模块对所述数据源进行解析处理,生成所述业务数据源,其中,所述Structs2模块位于所述表示层与所述业务层之间;
所述根据所述读日志注解,及调用线程共享变量类通过所述通信机制向所述原始数据库进行数据读取,得到初始化数据集,完成所述读操作,包括:将所述标准数据连接池中参与处理的数据连接信息加载至所述读日志注解中;通过所述线程共享变量类中的set方法对所述读日志注解中的数据连接信息进行读取,得到被读取数据的路径,以向所述原始数据库进行数据的读取,得到所述初始化数据集;将所述初始化数据集存入预先创建的系统上下文对象中,完成所述读操作;
所述对所述初始化数据集进行预处理操作,得到持久化标准数据集,包括:对所述初始化数据集进行异常值删除、排序整理,生成标准数据集;通过所述浏览器/服务器架构的持久化层对所述标准数据集进行持久化操作,得到所述持久化标准数据集。
2.如权利要求1所述的数据源读写的分离方法,其特征在于,所述对所述连接池进行初始化处理,得到标准数据连接池,包括:
预设所述连接池的连接数目、最小连接数目、最大连接数目、事务最长等待时间以及连接最大引用次数,得到所述标准数据连接池。
3.一种数据源读写的分离装置,其特征在于,所述装置包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的数据源读写的分离程序,所述数据源读写的分离程序被所述处理器执行时实现如下步骤:
基于原始数据库的所属类型,创建所述原始数据库的连接池,对所述连接池进行初始化处理,得到标准数据连接池;
通过预先构建的浏览器/服务器架构接收用户输入的数据源,将所述数据源转换为业务数据源,根据所述业务数据源,建立所述浏览器/服务器架构与所述标准数据连接池的通信机制,并生成逻辑操作命令;
当所述逻辑操作命令为读操作时,在所述浏览器/服务器架构中创建读-数据访问对象的操作层,生成读日志注解,根据所述读日志注解,及调用线程共享变量类通过所述通信机制向所述原始数据库进行数据读取,得到初始化数据集,完成所述读操作;
对所述初始化数据集进行预处理操作,得到持久化标准数据集;
当所述逻辑操作命令为写操作时,在所述浏览器/服务器架构中创建写-数据访问对象的操作层,生成写日志注解,根据所述写日志注解中的参数得到目标数据库,将所述持久化标准数据集写入所述目标数据库中,完成所述写操作;
其中,所述浏览器/服务器架构包括表示层、业务层、持久化层和数据层;所述通过预先构建的浏览器/服务器架构接收用户输入的数据源,将所述数据源转换为业务数据源,包括:通过所述表示层接收所述用户输入的数据源,将所述用户输入的数据源发送至Structs2模块中,通过所述Structs2模块对所述数据源进行解析处理,生成所述业务数据源,其中,所述Structs2模块位于所述表示层与所述业务层之间;
所述根据所述读日志注解,及调用线程共享变量类通过所述通信机制向所述原始数据库进行数据读取,得到初始化数据集,完成所述读操作,包括:将所述标准数据连接池中参与处理的数据连接信息加载至所述读日志注解中;通过所述线程共享变量类中的set方法对所述读日志注解中的数据连接信息进行读取,得到被读取数据的路径,以向所述原始数据库进行数据的读取,得到所述初始化数据集;将所述初始化数据集存入预先创建的系统上下文对象中,完成所述读操作;
所述对所述初始化数据集进行预处理操作,得到持久化标准数据集,包括:对所述初始化数据集进行异常值删除、排序整理,生成标准数据集;通过所述浏览器/服务器架构的持久化层对所述标准数据集进行持久化操作,得到所述持久化标准数据集。
4.如权利要求3所述的数据源读写的分离装置,其特征在于,所述对所述连接池进行初始化处理,得到标准数据连接池,包括:
预设所述连接池的连接数目、最小连接数目、最大连接数目、事务最长等待时间以及连接最大引用次数,得到所述标准数据连接池。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据源读写的分离程序,所述数据源读写的分离程序可被一个或者多个处理器执行,以实现如权利要求1或2所述的数据源读写的分离方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910975811.6A CN110837531B (zh) | 2019-10-12 | 2019-10-12 | 数据源读写的分离方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910975811.6A CN110837531B (zh) | 2019-10-12 | 2019-10-12 | 数据源读写的分离方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110837531A CN110837531A (zh) | 2020-02-25 |
CN110837531B true CN110837531B (zh) | 2023-06-20 |
Family
ID=69575326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910975811.6A Active CN110837531B (zh) | 2019-10-12 | 2019-10-12 | 数据源读写的分离方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110837531B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761038A (zh) * | 2020-09-29 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 数据源读写分离方法和装置 |
CN112596785A (zh) * | 2021-01-14 | 2021-04-02 | 江苏徐工信息技术股份有限公司 | 一种基于注解的多数据源管理方法 |
CN115840737B (zh) * | 2023-02-16 | 2023-06-13 | 济南邦德激光股份有限公司 | 一种基于数据库的分离式日志管理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591964A (zh) * | 2011-12-30 | 2012-07-18 | 北京新媒传信科技有限公司 | 数据读写分离机制的实现方法和装置 |
CN102622427A (zh) * | 2012-02-27 | 2012-08-01 | 杭州闪亮科技有限公司 | 读写分离数据库的方法及系统 |
CN107169108A (zh) * | 2017-05-19 | 2017-09-15 | 郑州云海信息技术有限公司 | 一种基于Oracle实现MySQL数据快速恢复的方法与装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2426441A1 (en) * | 2003-04-23 | 2004-10-23 | Ibm Canada Limited - Ibm Canada Limitee | System and method for querying a data source |
-
2019
- 2019-10-12 CN CN201910975811.6A patent/CN110837531B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591964A (zh) * | 2011-12-30 | 2012-07-18 | 北京新媒传信科技有限公司 | 数据读写分离机制的实现方法和装置 |
CN102622427A (zh) * | 2012-02-27 | 2012-08-01 | 杭州闪亮科技有限公司 | 读写分离数据库的方法及系统 |
CN107169108A (zh) * | 2017-05-19 | 2017-09-15 | 郑州云海信息技术有限公司 | 一种基于Oracle实现MySQL数据快速恢复的方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110837531A (zh) | 2020-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110837531B (zh) | 数据源读写的分离方法、装置及计算机可读存储介质 | |
WO2020015190A1 (zh) | 业务规则的生成方法、电子装置及可读存储介质 | |
CN111061475B (zh) | 软件代码生成方法、装置、计算机设备和存储介质 | |
CN110334144B (zh) | 报文展示方法、装置、计算机设备及存储介质 | |
US10445417B2 (en) | Entry of values into multiple fields of a form using touch screens | |
CN110837366A (zh) | 一种表单生成方法、电子装置及计算机可读存储介质 | |
US10788997B2 (en) | Method and device for storage management with metadata stored in disk extents in an extent pool | |
US20230244680A1 (en) | Systems and methods for expedited large file processing | |
US20150269234A1 (en) | User Defined Functions Including Requests for Analytics by External Analytic Engines | |
US11307984B2 (en) | Optimized sorting of variable-length records | |
WO2019071898A1 (zh) | 电子装置、数据库查询脚本生成方法及存储介质 | |
US20140282369A1 (en) | Software application generator | |
CN115455058A (zh) | 缓存数据的处理方法、装置、计算机设备及存储介质 | |
CN110727425A (zh) | 电子装置、表单数据校验方法和计算机可读存储介质 | |
CN110837559B (zh) | 语句样本集的生成方法、电子装置及存储介质 | |
CN117033249A (zh) | 一种测试用例生成方法、装置、计算机设备及存储介质 | |
US20230334075A1 (en) | Search platform for unstructured interaction summaries | |
CN111221917A (zh) | 智能分区存储方法、装置及计算机可读存储介质 | |
CN111880743B (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN113094191A (zh) | 业务规则处理方法、装置、服务器及存储介质 | |
CN110891120B (zh) | 界面内容展示方法、装置及存储介质 | |
US20230359819A1 (en) | Intelligent qr code compression | |
US20140280378A1 (en) | Database generator | |
CN116737137A (zh) | 业务流程的生成方法、装置、计算机设备和存储介质 | |
CN114547066A (zh) | 核电业务数据的标准化方法、装置和计算机设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |