CN110442636B - 一种数据的读写方法、装置及数据读写设备 - Google Patents
一种数据的读写方法、装置及数据读写设备 Download PDFInfo
- Publication number
- CN110442636B CN110442636B CN201910782275.8A CN201910782275A CN110442636B CN 110442636 B CN110442636 B CN 110442636B CN 201910782275 A CN201910782275 A CN 201910782275A CN 110442636 B CN110442636 B CN 110442636B
- Authority
- CN
- China
- Prior art keywords
- database
- operation interface
- specified
- writing
- data
- 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
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据的读写方法、装置及数据读写设备。方法包括:获取数据读写请求;通过调用实例化数据库操作接口,确定出实例化数据库操作接口中的指定数据库,其中,实例化数据库操作接口为基于指定数据库的操作接口生成,指定数据库的操作接口的注解中携带有指定数据库的信息;根据数据读写请求对指定数据库进行数据读写。通过在程序接口文件的注解中使用哪个数据库,以及通过该程序接口文件生成实例化数据库操作接口,实现无需在业务逻辑中建立与数据库的耦合关系便可对指定数据库进行数据读写,避免了对原有业务逻辑入侵,保证业务逻辑的稳定性,同时也降低业务逻辑维护和测试成本。
Description
技术领域
本申请涉及数据读写技术领域,具体而言,涉及一种数据的读写方法、装置及数据读写设备。
背景技术
目前,可通过在数据读写设备的业务逻辑中建立与数据库的耦合关系,以指定数据读写设备使用哪个数据库进行数据读写。但由于业务逻辑中各种业务代码的耦合性很强,在业务逻辑中建立与数据库的耦合关系会对原有业务逻辑造成很大程度的入侵,导致其稳定性下降,同时也增加了维护和测试成本。
发明内容
本申请在于提供一种数据的读写方法、装置及数据读写设备,以避免入侵原有业务逻辑,保证业务逻辑的稳定性,降低业务逻辑维护和测试成本。
第一方面,本申请实施例提供了一种数据的读写方法,所述方法包括:
获取数据读写请求;
通过调用实例化数据库操作接口,确定出所述实例化数据库操作接口中的指定数据库,其中,所述实例化数据库操作接口为基于所述指定数据库的操作接口生成,所述数据库的操作接口的注解中携带有所述指定数据库的信息;
根据所述数据读写请求对所述指定数据库进行数据读写。
在本申请实施例中,通过在程序接口文件的注解中使用哪个数据库,以及通过该程序接口文件生成实例化数据库操作接口,实现无需在业务逻辑中建立与数据库的耦合关系便可对指定数据库进行数据读写,避免了对原有业务逻辑入侵,保证业务逻辑的稳定性,同时也降低业务逻辑维护和测试成本。
结合第一方面,在第一种可能的实现方式中,在通过调用实例化数据库操作接口,确定出所述实例化数据库操作接口中的指定数据库之前,所述方法还包括:
扫描所述指定数据库的操作接口中的所述注解,获取所述注解中携带的所述指定数据库的标识,以及根据所述注解的指示,获取数据库配置文件中的数据库的标识,其中,所述数据库配置文件中的数据库的标识用于配置当前指定使用哪个数据库进行数据读写;
确定数据库配置文件中的数据库的标识与所述指定数据库的标识相同,将所述指定数据库的操作接口实例化,生成所述实例化数据库操作接口。
在本申请实施例中,由于程序自检扫描具有简单且以实现的特点,故通过扫描注解的方式可实现快速且便捷将接口的实例化,进而实现快速且便捷确定出指定数据库。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在扫描所述指定数据库的操作接口中的所述注解之前,所述方法还包括:
预先生成与***支持的所述指定数据库对应的所述指定数据库的操作接口,在所述注解中定义所述指定数据库的标识。
在本申请实施例中,通过在与指定数据库对应的数据库的操作接口的注解中定义对应该指定数据库的标识,以使后续可以通过标识准确确定出该指定数据库,有效避免误判断。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,预先生成与***支持的所述指定数据库对应的所述指定数据库的操作接口,包括:
预先生成与所述指定数据库对应的Java程序接口文件,所述Java程序接口文件包括所述指定数据库的操作接口。
在本申请实施例中,由于java程序接口文件便捷性,故通过生成java程序接口文件来间接生成数据库的操作接口,可以实现便捷的生成数据库的操作接口。
结合第一方面的第一种至第三种中任一种可能的实现方式,在第四种可能的实现方式中,将所述指定数据库的操作接口实例化,生成所述实例化数据库操作接口,包括:
通过Mybatis的Java的动态代理,将所述指定数据库的操作接口进行实例化,生成所述实例化数据库操作接口。
在本申请实施例中,由于Mybatis的Java的动态代理为通用的服务,故利用Mybatis的Java的动态代理可便捷的生成实例化数据库操作接口。
第二方面,本申请实施例提供了一种数据的读写方法,应用于数据读写设备,所述装置包括:
数据收发模块,用于获取数据读写请求;
数据处理模块,用于通过调用实例化数据库操作接口,确定出所述实例化数据库操作接口中的指定数据库,其中,所述实例化数据库操作接口为基于所述指定数据库的操作接口生成,所述数据库的操作接口的注解中携带有所述指定数据库的信息;以及,还用于根据所述数据读写请求对所述指定数据库进行数据读写。
结合第二方面,在第一种可能的实现方式中,在所述数据处理模块通过调用实例化数据库操作接口,确定出所述实例化数据库操作接口中的指定数据库之前,
所述数据处理模块,还用于扫描所述指定数据库的操作接口中的所述注解,获取所述注解中携带的所述指定数据库的标识,以及根据所述注解的指示,获取数据库配置文件中指定的数据库的标识,其中,所述数据库配置文件中的数据库的标识用于配置当前指定使用哪个数据库进行数据读写;确定所述数据库配置文件中的数据库的标识与所述指定数据库的标识相同,将所述指定数据库的操作接口实例化,生成所述实例化数据库操作接口。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述数据处理模块在扫描所述指定数据库的操作接口中的所述注解之前,所述方法还包括:
所述数据处理模块,还用于预先生成与***支持的所述指定数据库对应的所述指定数据库的操作接口,在所述注解中定义所述指定数据库的标识。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,
所述数据处理模块,用于预先生成与所述指定数据库对应的Java程序接口文件,所述Java程序接口文件包括所述指定数据库的操作接口。
结合第二方面的第一种至第三种中任一种可能的实现方式,在第四种可能的实现方式中,
所述数据处理模块,用于通过Mybatis的Java的动态代理,将所述指定数据库的操作接口进行实例化,生成所述实例化数据库操作接口。
第三方面,本申请实施例提供了一种数据读写设备,所述数据读写设备包括:处理器和存储器;
所述存储器,用于存储携带有注解的数据库的操作接口;
所述处理器,用于根据所述携带有注解的数据库的操作接口,执行如第一方面或第一方面的任一种可能的实现方式所述的数据的读写方法。
第四方面,本申请实施例提供了一种非易失计算机可读储存介质,存储有程序代码,当所述程序代码被计算机运行时执行如第一方面或第一方面的任一种可能的实现方式所述的数据的读写方法。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例中数据读写设备与数据库的连接关系图;
图2示出了本申请实施例提供的一种数据的读写方法的流程图;
图3示出了本申请实施例提供的一种数据读写设备的结构框图;
图4示出了本申请实施例提供的一种数据的读写装置的结构框图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参阅图1和图2,本申请实施例提供了一种数据的读写方法,数据的读写方法可以由数据读写设备10执行,该数据读写设备10可以是终端或者服务器,其中,终端可以是个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digitalassistant,PDA)等;服务器可以为网络服务器、数据库服务器、云服务器或由多个子服务器构成的服务器集成等。
具体的,该数据的读写方法可以包括:步骤S100、步骤S200和步骤S300。
步骤S100:获取数据读写请求。
步骤S200:通过调用实例化数据库操作接口,确定出所述实例化数据库操作接口中的指定数据库,其中,所述实例化数据库操作接口为基于所述指定数据库的操作接口生成,所述数据库的操作接口的注解中携带有所述指定数据库的信息。
步骤S300:根据所述数据读写请求对所述指定数据库进行数据读写。
下面将结合步骤S100至步骤S300对方案进行详细说明。
数据读写设备10可以对接多种数据库20,使得数据读写设备10可以使用多种数据库20进行数据读写。其中,数据库20可以是MySQL数据库、Oracle数据库、DB2数据库或SQLServer数据库等。数据库20可以部署在数据读写设备10上;或者,数据库20也可以部署在与数据读写设备10连接的其它物理设备上。
由于数据读写设备10可以使用多种数据库20进行数据读写,故数据读写设备10每次读写或每段时间内的读写所使用的数据库20的类型可以根据用户的指定有所不同。例如,在本次数据读写时,指定数据读写设备10使用的是MySQL数据库,而在下一次数据读写时,指定数据读写设备10使用的是Oracle数据库;又例如,在请求用于数据读取时,指定数据读写设备10使用的是MySQL数据库,而在请求用于数据写入时,指定数据读写设备10使用的是Oracle数据库,其中,MySQL数据库和Oracle数据库为不同种类的数据库。因此,在数据读写之前的特定时刻,数据读写设备10需要确定当前指定使用哪种数据库,例如,在数据读写设备10开机上电、数据读写设备10的***重启、数据读写设备10的控制程序重新加载或者数据读写设备10的控制程序自检时,数据读写设备10可以确定当前指定使用哪种数据库。
作为指定当前需要使用哪种数据库的示例性方式,数据读写设备10可以通过通过数据库配置文件,确定当前指定使用哪种数据库进行数据读写。
具体的,数据读写设备10预先生成有与该数据读写设备10上的***支持的每种数据库一一对应的每种数据库的操作接口。其中,由于生成每种数据库的操作接口的方式大致相同,为便于理解,本实施例以生成某一种数据库对应的数据库的操作接口为例进行说明。其中,为便于描述,后续将例举的某一种数据库统称为“指定数据库21”。
作为生成该数据库的操作接口的示例性方式,数据读写设备10可以预先生成与该指定数据库21对应的Java程序接口文件,而该Java程序接口文件中则包含该指定数据库21对应的操作接口。这样,数据读写设备10通过调用Java程序接口文件中的该指定数据库21的操作接口,便可以访问该指定数据库21。
下面通过一个示例进行说明:
数据库的操作接口为IUserDao接口,IUserDao接口对应MySQL数据库,数据库的操作接口为IUserDaoForOracle接口,IUserDaoForOracle接口对应Oracle数据库,其中,IUserDao接口和IUserDaoForOracle接口为不同类型的接口,MySQL数据库和Oracle数据库的类型也不同。若数据读写设备10调用IUserDao接口,则实现访问MySQL数据库,若数据读写设备10调用IUserDaoForOracle接口,则实现访问Oracle数据库。
为实现通过扫描该指定数据库的操作接口而确定当前指定使用哪种数据库,在预先生成该指定数据库的操作接口时,还预先在该指定数据库的操作接口中设置对应的注解。其中,注解中携带有指定数据库21的信息,例如该指定数据库21的唯一标识,以及还携带有当前是否使用该指定数据库21的判断逻辑。这样,数据读写设备10通过扫描该指定数据库的操作接口的注解便可以确定出当前是否使用该指定数据库21进行数据读写。
具体的,例如判断逻辑可以是:将注解中的指定数据库21的标识与数据库配置文件中的数据库22的标识进行比对(数据库配置文件中的数据库22的标识用于指示当前需要该数据库22进行数据读写),如果相同则使用注解中的指定数据库21,如果不相同则使用数据库配置文件中的数据库22。此外,注解所携带的内容还包含注解指定的数据库22的标识,以及还包含哪个数据库的操作接口支持该注解中指定的数据库22。
数据读写设备10通过扫描注解中携带的内容而获取判断逻辑后,数据读写设备10根据判断逻辑便可以获取注解中指定数据库21的标识,以及根据注解中判断逻辑的指示,获取数据库配置文件中的数据库22的标识。这样,数据读写设备10再根据判断逻辑,将注解中指定数据库21的标识与数据库配置文件中的数据库22的标识匹配,以确定注解中指定数据库21的标识与数据库配置文件中的数据库22的标识是否相同。
若确定标识相同,表示当前需要使用注解中指定数据库21进行数据读写,否则表示当前需要使用数据库配置文件中的数据库22进行数据读写。
需要说明的是,一些情况下,注解中可以直接携带指定数据库21的标识,而另一些情况下,注解可以携带文件索引,该文件索引可以指向数据读写设备10中存储有注解指定数据库21的标识的数据文件。通过扫描注解,数据读写设备10可以获得该文件索引,并从文件索引指向的数据文件中获得该指定数据库21的标识。
继续前述示例,在IUserDaoForOracle接口设置注解,该注解中携带的内容可以为:
public@interface DataSource{
//默认支持MySQL数据库,当然也可以默认支持其它数据库
String value()default”MySQL”;
}
public class DataSourceConfig implements Condition{
@Override
public boolean matches(…){
//IUserDaoForOracle接口被调用时,根据IUserDaoForOracle接口上的@DataSource注解指定的数据库的标识,与数据库配置文件中指定的数据库的标识进行比对,如果相同则使用@DataSource注解指定的数据库,如果不相同则使用数据库配置文件中指定的数据库。
}
@DataSource(“Oracle”)
@Conditional(DataSourceConfig.class)
public interface IUserDaoForOracle extends IUserDao{}
以及,数据库配置文件中指定的数据库的标识为:
db.used=Oracle。
数据读写设备10通过扫描该指定数据库21的操作接口的注解,可以确定注解中的标识Oracle与数据库配置文件中的标识Oracle相同,从而确定数据读写设备10当前需要使用Oracle数据库进行数据读写。
需要说明的是,判断逻辑也不限于本实施例中前述的逻辑,其可根据实际情况进行设置;例如,判断逻辑还可以是:获取数据读写设备中存储的各数据库的当前数据存储量,选择当前数据存储量最低的数据库作为当前指定使用的数据库;又例如,判断逻辑还可以是:获取数据读写设备中存储的各数据库的当前使用次数(数据读写设备在数据库中进行一次数据读写则认为该数据库被使用一次),选择当前使用次数最少的数据库作为当前需要使用的数据库。当然,还有其它的判断逻辑,本实施例就不再一一例举。
值得指出的是,若判断一个注解所携带的内容便可确定当前对应使用哪种数据库,为避免重复判断,可以选择各种数据库的操作接口中的某一个数据库的操作接口设置注解。例如,任意选择IUserDaoForOracle接口和IUserDao接口中的IUserDaoForOracle接口设置注解,该注解的携带的内容用于指示数据读写设备当前需要使用MySQL数据库还是MySQL数据库进行读写。若需要组合判断多个注解所携带的内容才能够确定当前需要使用哪种数据库,可以将多种数据库的操作接口均设置注解,例如,IUserDaoForOracle接口设置注解1,IUserDao接口设置注解2,数据读写设备10依次读取注解1和注解2的内容便可以确定当前需要使用MySQL数据库还是MySQL数据库进行读写。
基于同一发明构思,在本实施例中,若数据读写设备需要新增一种数据库,一方面,可以在程序接口文件中增加用于访问该新增的数据库的操作接口,另一方面,调整注解的判断逻辑,以使该新增的数据库的标识也在判断逻辑的判断范围内。这样,在当前需要使用该新增的数据库时,数据读写设备通过扫描注解便可以确定当前需要使用该新增的数据库进行读写。可以理解到,新增的数据库的实现是通过对程序接口文件和数据库的操作接口的注解进行调整,无需对数据读写设备中数据读写的业务逻辑进行调整,实现利用新增的数据库进行读写的同时,还保证业务的稳定性,并避免维护和测试成本的增加。
本实施例中,在确定出当前使用注解中指定数据库21进行读写后,若该指定数据库21的操作接口还未实例化,为了能正常访问该指定数据库21,数据读写设备10还可以将该数据库的操作接口实例化,从而生成实例化数据库操作接口。
作为将数据库的操作接口实例化的示例性方式,数据读写设备10的数据库配置文件中包含该指定数据库21的配置信息。数据读写设备10通过例如Mybatis的Java的动态代理,将指定数据库21的配置信息配置到该指定数据库的操作接口,便可以生成实例化数据库操作接口。后续数据读写设备10直接调用该实例化数据库操作接口便可以访问该指定数据库21。
继续前述示例,数据库配置文件中指定数据库21的配置信息可以包括:
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=xxx
spring.datasource.username=xxx
通过Mybatis的Java的动态代理,为IUserDaoForOracle接口配置该配置信息,便可以实现IUserDaoForOracle接口的实例化。
当然,在确定出当前使用注解中指定数据库21进行读写后,若该支持的数据库的操作接口已经实例化,数据读写设备10无需再次进行实例化,并直接将该支持的数据库的操作接口确定为程序接口文件中实例化数据库操作接口。
进一步的,在生成实例化数据库操作接口后,数据读写设备10可以执行步骤S100。
步骤S100:获取数据读写请求。
若客户端需要在指定数据库21中读写数据,客户端可以向数据读写设备10发送数据读写请求,其中,客户端可以运行在与数据读写设备10连接的其它物理设备上。相应的,数据读写设备10可以对应接收到客户端发送的数据读写请求。
若数据读写设备10自身需要在指定数据库21中读写数据,数据读写设备10自身可以生成数据读写请求,即获得自身生成的数据读写请求。
步骤S200:通过调用实例化数据库操作接口,获取所述实例化数据库操作接口中的指定数据库。
由于数据读写设备10的程序接口文件中具有实例化数据库操作接口,数据读写设备10可以调用该实例化数据库操作接口,从而根据该实例化数据库操作接口的映射关系,便可以确定出该实例化数据库操作接口中的指定数据库21。
步骤S300:根据所述数据读写请求对所述指定数据库进行数据读写。
在确定出指定数据库,数据读写设备10便可以利用该数据读写请求对该指定数据库21进行数据的读操作或写操作。
请参阅图3,基于同一发明构思,本申请实施例提供了一种数据读写设备10,该数据读写设备10可以包括连接到各数据库20的通信接口11、用于执行程序指令的一个或多个处理器12、总线13、和不同形式的存储器14,例如,磁盘、ROM、或RAM,或其任意组合。示例性地,计算机平台还可以包括存储在ROM、RAM、或其他类型的非暂时性存储介质、或其任意组合中的程序指令。
存储器14用于携带有注解的数据库的操作接口,处理器12用于根据该携带有注解的数据库的操作接口,执行前述的数据的读写方法。
请参阅图4,基于同一发明构思,本申请实施例提供了一种数据的读写装置100,数据的读写装置100可以应用于数据读写设备10,该数据的读写装置100可以包括:
数据收发模块110,用于获取数据读写请求。
数据处理模块120,用于通过调用实例化数据库操作接口,确定出所述实例化数据库操作接口中的指定数据库,其中,所述实例化数据库操作接口为基于所述指定数据库的操作接口生成,所述数据库的操作接口的注解中携带有所述指定数据库的信息;以及,还用于根据所述数据读写请求对所述指定数据库进行数据读写。
可选的,在所述数据处理模块120通过调用实例化数据库操作接口,确定出所述实例化数据库操作接口中的指定数据库之前,
所述数据处理模块120,还用于扫描所述指定数据库的操作接口中的所述注解,获取所述注解中携带的所述指定数据库的标识,以及根据所述注解的指示,获取数据库配置文件中指定的数据库的标识,其中,所述数据库配置文件中的数据库的标识用于配置当前指定使用哪个数据库进行数据读写;确定数据库配置文件中的数据库的标识与所述指定数据库的标识相同,将所述指定数据库的操作接口实例化,生成所述实例化数据库操作接口。
可选的,所述数据处理模块120在扫描所述指定数据库的操作接口中的所述注解之前,所述方法还包括:
所述数据处理模块120,还用于预先生成与***支持的所述指定数据库对应的所述指定数据库的操作接口,在所述注解中定义所述指定数据库的标识。
可选的,所述数据处理模块120,用于预先生成与所述指定数据库对应的Java程序接口文件,所述Java程序接口文件包括所述指定数据库的操作接口。
可选的,所述数据处理模块120,用于通过Mybatis的Java的动态代理,将所述指定数据库的操作接口进行实例化,生成所述实例化数据库操作接口。
需要说明的是,由于所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请一些实施例还提供了一种计算机可执行的非易失的程序代码的计算机可读储存介质,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该计算机可读存储介质上存储有程序代码,该程序代码被计算机运行时执行上述任一实施方式的数据的读写方法的步骤。
本申请实施例所提供的数据的读写方法的程序代码产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
综上所述,本申请实施例提供了一种数据的读写方法、装置及数据读写设备。通过在程序接口文件的注解中使用哪个数据库,以及通过该程序接口文件生成实例化数据库操作接口,实现无需在业务逻辑中建立与数据库的耦合关系便可对指定数据库进行数据读写,避免了对原有业务逻辑入侵,保证业务逻辑的稳定性,同时也降低业务逻辑维护和测试成本。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种数据的读写方法,其特征在于,所述方法包括:
获取数据读写请求;
通过调用实例化数据库操作接口,确定出所述实例化数据库操作接口中的指定数据库,其中,所述实例化数据库操作接口为基于所述指定数据库的操作接口生成,所述指定数据库的操作接口的注解中携带有所述指定数据库的信息;
根据所述数据读写请求对所述指定数据库进行数据读写;
其中,在通过调用实例化数据库操作接口,确定出所述实例化数据库操作接口中的指定数据库之前,所述方法还包括:扫描所述指定数据库的操作接口中的所述注解,获取所述注解中携带的所述指定数据库的标识,以及根据所述注解的指示,获取数据库配置文件中的数据库的标识,其中,所述数据库配置文件中的数据库的标识用于配置当前指定使用哪个数据库进行数据读写;确定数据库配置文件中的数据库的标识与所述指定数据库的标识相同,将所述指定数据库的操作接口实例化,生成所述实例化数据库操作接口。
2.根据权利要求1所述的数据的读写方法,其特征在于,在扫描所述指定数据库的操作接口中的所述注解之前,所述方法还包括:
预先生成与***支持的所述指定数据库对应的所述指定数据库的操作接口,在所述注解中定义所述指定数据库的标识。
3.根据权利要求2所述的数据的读写方法,其特征在于,预先生成与***支持的所述指定数据库对应的所述指定数据库的操作接口,包括:
预先生成与所述指定数据库对应的Java程序接口文件,所述Java程序接口文件包括所述指定数据库的操作接口。
4.根据权利要求1-3中任一权项所述的数据的读写方法,其特征在于,将所述指定数据库的操作接口实例化,生成所述实例化数据库操作接口,包括:
通过Mybatis的Java的动态代理,将所述指定数据库的操作接口进行实例化,生成所述实例化数据库操作接口。
5.一种数据的读写装置,其特征在于,所述装置包括:
数据收发模块,用于获取数据读写请求;
数据处理模块,用于通过调用实例化数据库操作接口,确定出所述实例化数据库操作接口中的指定数据库,其中,所述实例化数据库操作接口为基于所述指定数据库的操作接口生成,所述数据库的操作接口的注解中携带有所述指定数据库的信息;以及,还用于根据所述数据读写请求对所述指定数据库进行数据读写;
其中,在所述数据处理模块通过调用实例化数据库操作接口,确定出所述实例化数据库操作接口中的指定数据库之前,所述数据处理模块,还用于扫描所述指定数据库的操作接口中的所述注解,获取所述注解中携带的所述指定数据库的标识,以及根据所述注解的指示,获取数据库配置文件中指定的数据库的标识,其中,所述数据库配置文件中的数据库的标识用于配置当前指定使用哪个数据库进行数据读写;确定所述数据库配置文件中的数据库的标识与所述指定数据库的标识相同,将所述指定数据库的操作接口实例化,生成所述实例化数据库操作接口。
6.根据权利要求5所述的数据的读写装置,其特征在于,所述数据处理模块在扫描所述指定数据库的操作接口中的所述注解之前,
所述数据处理模块,还用于预先生成与***支持的所述指定数据库对应的所述指定数据库的操作接口,在所述注解中定义所述指定数据库的标识。
7.根据权利要求6所述的数据的读写装置,其特征在于,
所述数据处理模块,用于预先生成与所述指定数据库对应的Java程序接口文件,所述Java程序接口文件包括所述指定数据库的操作接口。
8.根据权利要求5-7中任一权项所述的数据的读写装置,其特征在于,
所述数据处理模块,用于通过Mybatis的Java的动态代理,将所述指定数据库的操作接口进行实例化,生成所述实例化数据库操作接口。
9.一种数据读写设备,其特征在于,所述数据读写设备包括:处理器和存储器;
所述存储器,用于存储携带有注解的数据库的操作接口;
所述处理器,用于根据所述携带有注解的数据库的操作接口,执行如权利要求1-4任一权项所述的数据的读写方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910782275.8A CN110442636B (zh) | 2019-08-22 | 2019-08-22 | 一种数据的读写方法、装置及数据读写设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910782275.8A CN110442636B (zh) | 2019-08-22 | 2019-08-22 | 一种数据的读写方法、装置及数据读写设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110442636A CN110442636A (zh) | 2019-11-12 |
CN110442636B true CN110442636B (zh) | 2022-04-05 |
Family
ID=68437258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910782275.8A Active CN110442636B (zh) | 2019-08-22 | 2019-08-22 | 一种数据的读写方法、装置及数据读写设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110442636B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111708518A (zh) * | 2020-06-12 | 2020-09-25 | 北京思特奇信息技术股份有限公司 | 一种数据源切换方法、装置、存储介质和设备 |
CN113176876B (zh) * | 2021-04-23 | 2023-08-11 | 网易(杭州)网络有限公司 | 数据读写的方法、装置和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008146586A (ja) * | 2006-12-13 | 2008-06-26 | Fujitsu Ltd | アノテーション管理プログラム、アノテーション管理装置及びアノテーション管理方法 |
CN107220375A (zh) * | 2017-06-20 | 2017-09-29 | 北京小度信息科技有限公司 | 数据读写方法和服务器 |
CN107633016A (zh) * | 2017-08-23 | 2018-01-26 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置和电子设备 |
CN108804644A (zh) * | 2018-06-05 | 2018-11-13 | 中国平安人寿保险股份有限公司 | 接口日志存储方法、装置、计算机设备和存储介质 |
CN109271331A (zh) * | 2018-08-20 | 2019-01-25 | 平安普惠企业管理有限公司 | 日志的生成方法、装置、计算机设备及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4242398B2 (ja) * | 2006-06-02 | 2009-03-25 | フェリカネットワークス株式会社 | データ通信システム、情報処理端末、icカード、読み書き装置、およびプログラム |
CN103793432B (zh) * | 2012-11-01 | 2018-04-06 | 深圳中兴网信科技有限公司 | 一种数据库读写分离方法及装置 |
CN103942281B (zh) * | 2014-04-02 | 2017-07-25 | 北京中交兴路车联网科技有限公司 | 一种对持久化存储的对象进行操作的方法及装置 |
CN106940695B (zh) * | 2016-01-05 | 2020-06-26 | 阿里巴巴集团控股有限公司 | 数据源信息的校验方法及装置 |
CN107301179A (zh) * | 2016-04-14 | 2017-10-27 | 北京京东尚科信息技术有限公司 | 数据库读写分离的方法和装置 |
US10506078B2 (en) * | 2016-06-30 | 2019-12-10 | Sap Portals Israel Ltd. | Centralized overview display generated from annotated data sources |
CN107463378A (zh) * | 2017-07-28 | 2017-12-12 | 深圳市丰巢科技有限公司 | 一种基于注解的本地缓存实现方法、存储设备及电子设备 |
-
2019
- 2019-08-22 CN CN201910782275.8A patent/CN110442636B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008146586A (ja) * | 2006-12-13 | 2008-06-26 | Fujitsu Ltd | アノテーション管理プログラム、アノテーション管理装置及びアノテーション管理方法 |
CN107220375A (zh) * | 2017-06-20 | 2017-09-29 | 北京小度信息科技有限公司 | 数据读写方法和服务器 |
CN107633016A (zh) * | 2017-08-23 | 2018-01-26 | 阿里巴巴集团控股有限公司 | 数据处理方法及装置和电子设备 |
CN108804644A (zh) * | 2018-06-05 | 2018-11-13 | 中国平安人寿保险股份有限公司 | 接口日志存储方法、装置、计算机设备和存储介质 |
CN109271331A (zh) * | 2018-08-20 | 2019-01-25 | 平安普惠企业管理有限公司 | 日志的生成方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
An annotation-based API for supporting runtime code annotation reading;Phyllipe Lima 等;《ACM》;20171022;第6-14页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110442636A (zh) | 2019-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110209652B (zh) | 数据表迁移方法、装置、计算机设备和存储介质 | |
CN109617646B (zh) | 报文转换方法、装置、计算机设备及计算机可读存储介质 | |
US9811605B2 (en) | Methods, apparatuses and computer program products for automated learning of data models | |
CN107729227B (zh) | 应用程序测试范围确定方法、***、服务器和存储介质 | |
CN107729452B (zh) | 网页加载方法、装置、电子设备及计算机可读存储介质 | |
US8935288B2 (en) | User specific logs in multi-user applications | |
CN112765023B (zh) | 测试用例生成方法、装置 | |
CN108416199B (zh) | 一种应用的用户权限控制方法、装置及服务器 | |
CN108776587B (zh) | 数据获取方法、装置、计算机设备以及存储介质 | |
CN110442636B (zh) | 一种数据的读写方法、装置及数据读写设备 | |
CN113364853A (zh) | 一种业务服务***、业务请求方法及网关设备 | |
CN110990346A (zh) | 基于区块链的文件数据处理方法、装置、设备及存储介质 | |
CN110941547A (zh) | 自动化测试用例库管理方法、装置、介质及电子设备 | |
CN114564158A (zh) | Linux***下控制文档打印的方法、装置、设备及介质 | |
CN108228842B (zh) | Docker镜像库文件存储方法、终端、设备以及存储介质 | |
CN113918437A (zh) | 用户行为数据分析方法、装置、计算机设备和存储介质 | |
CN111858020B (zh) | 用户资源限制方法、装置及计算机存储介质 | |
CN110233842B (zh) | 一种请求的校验方法和相关装置 | |
US12001458B2 (en) | Multi-cloud object store access | |
CN114331745B (zh) | 数据处理方法、***、可读存储介质和电子设备 | |
CN107506474B (zh) | 基于对象映射的数据库操作方法及装置 | |
CN112783866B (zh) | 数据读取方法、装置、计算机设备和存储介质 | |
CN110471708B (zh) | 基于可重用组件的配置项获取的方法及装置 | |
CN108363614B (zh) | 一种应用的业务模块管理方法、装置及服务器 | |
CN108615196A (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 |