CN103853803B - 数据库的配置文件的封装方法和操作方法及其操作装置 - Google Patents
数据库的配置文件的封装方法和操作方法及其操作装置 Download PDFInfo
- Publication number
- CN103853803B CN103853803B CN201310259740.2A CN201310259740A CN103853803B CN 103853803 B CN103853803 B CN 103853803B CN 201310259740 A CN201310259740 A CN 201310259740A CN 103853803 B CN103853803 B CN 103853803B
- Authority
- CN
- China
- Prior art keywords
- database
- data
- configuration file
- manipulation
- database manipulation
- 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
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
Abstract
本发明公开了一种数据库的配置文件的封装方法和操作方法及其操作装置,所述封装方法包括以下步骤:获取一个或多个数据库的类型和连接字符串;从一个或多个应用中获取实体,并确定各个实体的属性与各个数据库的数据表的关系;将所述数据库的类型和连接字符串和各个实体的属性与各个数据库的数据表的关系封装到一个配置文件中。本发明还公开了一种使用上述配置文件的操作方法,以及使用所述配置文件和操作方法的操作装置。本发明通过配置文件,在编码过程中,对数据库的操作均以对象的方式进行,简化了操作数据库的方法,从而提升开发效率,降低软件开发及运维成本。
Description
技术领域
本发明涉及一种数据库的配置文件的封装方法和操作方法及其操作装置,特别是涉及一种电子商务领域的数据库的配置文件的封装方法和操作方法及其操作装置。
背景技术
随着计算机技术的快速发展,网络已经成为人们生活的一部分,电子商务的发展也是日新月异,越来越繁荣。数据的存取乃是电子商务中不可或缺的一部分,如商品的信息、用户的信息、交易信息等等,都需要进行数据存取。现在大部分的电商应用的开发过程中,都使用数据库存储数据,但关于数据存取方面的开发,都是基于比较原始的模式,针对需要操作的各种数据,结合各不同框架底层的数据库操作类,一行一行的编写代码,将数据存取或更新至数据库。
由于电子商务中数据存取相关的操作非常之多,且这些数据除了属性不一致,存取的方法基本一致,开发人员在进行此类编码工作时,基本处于体力劳动状态,大量的复制、粘贴,再针对各数据的不同进行细微修改,提高了出错率的同时,也严重影响了开发效率和工作情绪。
虽然现在市面上有不少ORM(对象关系映射)来达到快速操作数据库的目的,但这些ORM要么自身很庞大,要么配置过程非常复杂,在使用之前需要进行大量的配置工作,或者实际操作起来非常复杂,比如需要使用复杂的多表查询的话,还是需要做很多的工作。
发明内容
本发明要解决的技术问题是为了克服现有技术中的数据库数据存取相关的操作复杂,重复性高的缺陷,提供一种数据库的配置文件的封装方法和操作方法及其操作装置,在使用之时,只需要配置一个简单的XML格式的配置文件,就可以达到快速进行数据库操作的目的。
本发明是通过下述技术方案来解决上述技术问题的:
本发明提供了一种数据库的配置文件的封装方法,其特点是,所述封装方法包括以下步骤:
S11、获取一个或多个数据库的类型和连接字符串;
S12、从一个或多个应用中获取实体,并确定各个实体的属性与各个数据库的数据表的关系;
S13、将所述数据库的类型和连接字符串和各个实体的属性与各个数据库的数据表的关系封装到一个配置文件中。
本发明中通过单独地为数据库和实体之间的关系进行封装,从而能够实现快速地操作数据库的目的。
其中所述数据库类型和连接字符串属于数据库自身属性所以此处不再详细论述所述数据库的类型和连接字符串的具体概念。而且所述数据库的数据表是数据库中存储的数据一种形式,这里同样不再详细地论述。
所述实体是指应用构建中所需要的对象,例如在一般的程序中,实体都是以类的形式存在。所以每个实体都必然包括属性,而至于属性的具体内容可以根据应用的实际使用和要求采用不同的内容。
此外各个实体的属性与各个数据库的数据表的关系是指由于实体的属性与数据表之间存在因果上的联系,这种联系在没有通过客观形式表现出来前还属于一种主观认知上的联系,本发明将这些因果上的联系在配置文件里表征为一种数据之间的映射或链接等。即这些实体的属性与数据库的数据表的关系在本发明单独封装出来的数据库配置文件中通过映射等方式客观地明确地确定了两者之间的关联。
本领域技术人员应该认识到,本发明的数据库配置文件封装的多个数据库和多个应用的实体之间的关系可以是任意,例如数据库与实体的关系、实体与实体的关系等,而且一个数据库可以对应多个实体,同样一个实体可以对应多个数据库。
较佳地,所配置文件为一XML(可扩展标记语言)文件。
XML可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
本发明中利用XML语言实现本发明的数据库配置文件。当然本领域技术人员应该认识到,任何程序语言,例如脚本语言等等都可以实现本发明的数据库配置文件。
本发明提供了一种数据库操作方法,其特点是,所述数据库操作方法使用通过如上所述数据库配置文件的封装方法获得的配置文件,并包括以下步骤:
S21、从输入的一指令信息中解析抽取数据库操作对象;
S22、检测是否已建立了包含所述数据库操作对象所映射的数据库的一数据映射对象,若是则进入步骤S27,否则进入步骤S23;
S23、将所述数据库操作对象所映射的数据库关联建立一个数据映射对象;
S24、从所述配置文件获得所述数据映射对象中数据库的类型和连接字符串以及与所述数据库关联的实体的属性;
S25、基于所述数据库的类型建立基础操作集合;
S26、将所述数据库的类型和连接字符串、与所述数据库关联的实体的属性和所述基础操作集合加入所述数据映射对象并写入内存;
S27、基于所述数据库操作对象和所述数据映射对象生成数据库操作代码;
S28、所述数据库操作对象所映射的数据库执行所述数据库操作代码。
本发明中基于上述的配置文件进一步地简化对数据库的操作,而且本发明将数据库与用户之间隔离,即用户不再需要知道输入何种数据库的操作代码格式,只要指明操作的数据库和操作的内容既可,所以在更换数据库时,只要直接对配置文件等进行修改,对于用户操作不需要变化。
其中由于每次建立的数据映射对象都会在一直在内存中运行,所以当再次需要运行数据映射对象时,只要直接从内存调用即可。
而且所述基础操作集合是指每个数据库其自身预先设定的各种数据库操作代码所构成的操作的集合。所述数据库操作代码就是这些操作的具体运行程序的表征。
较佳地,步骤S23和步骤S24之间包括以下步骤:
遍历所述配置文件所有内容,并验证所述内容的数据正确性。
本发明中还通过对配置文件中数据正确性的验证,保证配置文件的准确,避免误操作的发生。
较佳地,所述基础操作集合包括打开数据连接、关闭数据连接,创建事务、提交事务、回滚事务,新增数据、批量新增数据、修改数据、批量修改数据、删除数据、批量删除数据,查找、分页、求和和统计数据。
本领域技术人员还应该明了本发明中基础操作集合还可以包括其他的数据库操作以及用户自定义的数据库操作。
本发明还提供了一种数据库操作装置,其特点是,所述数据库操作装置包括一服务器和至少一个数据库;所述服务器使用如上所述的数据库操作方法;
其中所述服务器包括用于接收指令信息一用户操作接口、一数据操作模块、一数据映射模块、一数据库操作接口、用于生成基础操作集合的至少一个数据库操作模块和一内存;
所述数据操作模块用于解析指令信息抽取数据库操作对象并检测数据映射对象在内存中是否建立;
所述数据映射模块用于将所述数据库操作对象所映射的数据库关联建立数据映射对象并写入内存;
所述数据映射模块还用于将从所述配置文件获得所述数据映射对象中数据库的类型和连接字符串以及与所述数据库关联的实体的属性写入数据映射对象;
所述数据库操作接口基于内存中的所述数据映射对象、所述数据库操作对象以及基础操作集合生成数据库操作代码;所述数据库用于执行所述数据库操作代码并反馈操作结果。
本发明的数据库操作装置对常见的数据库操作方法进行了封装,通过配置文件,建立起实体与数据表之间的联系,不同的实体映射至不同的数据表,编码过程中,对数据库的操作均以对象的方式进行,简化了操作数据库的方法,让开发人员在编码工作中不用再编写大量重复代码和数据库连接、事务等操作相关的代码。
结合上述的操作数据库的方法,在软件系统中使用此方法,开发人员可以无需关注数据库类型及具体的数据结构,在开发过程中,只需要做好相应的配置,即可以使用面向对象的编程方式快速对操作数据库。
较佳地,所述数据映射模块还用于遍历所述配置文件所有内容,并验证所述内容的数据正确性。
优选地,所述数据库为SQLServer(结构化查询语言服务器)、ACCESS(微软发布的关联式数据库管理系统)或MySql(Oracle公司的关联数据库管理系统)。
本领域技术人员还应该明了本发明中数据库还可以包括其他的数据库以及用户自定义的数据库。
为了便于描述,本发明中将所述服务器按照功能划分为各种模块进行分别描述,所以在实施本发明时,可以把各模块的功能在同一个或多个软件和/或硬件中实现。
在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。
本发明的积极进步效果在于:
本发明的数据库的配置文件的封装方法和操作方法及其操作装置对常见的数据库操作方法进行了封装,通过配置文件,建立起实体与数据表之间的联系,不同的实体映射至不同的数据表,编码过程中,对数据库的操作均以对象的方式进行,简化了操作数据库的方法,让开发人员在编码工作中不用再编写大量数据库连接、事务等操作相关的代码。开发人员工作量至少降低了50%。从而提升开发效率,降低软件开发及运维成本。
附图说明
图1为本发明的较佳实施例的数据库操作装置的结构示意框图。
图2为本发明的较佳实施例的配置文件的封装流程图。
图3为本发明的较佳实施例的数据库操作流程图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
本发明的核心思想是通过配置文件,建立起应用程序中实体与数据库之间的映射,并利用数据库操作装置针对不同的数据库,调用不同的基础操作方法,并自动拼接出相关的操作代码语句,进行数据库的操作。
本发明的具体实现请参见附图1,本实施例的数据库操作装置包括一服务器1和2个数据库2。所述数据库2可以是SQLServer、ACCESS或MySql等数据库。所述服务器使1包括一用户操作接口11、一数据操作模块12、一数据映射模块13、一数据库操作接口14、2个数据库操作模块15和一内存16。
其中所述用户操作接口11用于接收指令信息。所述数据库操作模块15分别生成不同的基础操作集合。所述基础操作集合包括打开数据连接、关闭数据连接,创建事务、提交事务、回滚事务,新增数据、批量新增数据、修改数据、批量修改数据、删除数据、批量删除数据,查找、分页、求和和统计数据。
具体地说,所述用户操作接口11提供了一系列用户操作数据的方法,包含打开、关闭数据连接,创建、提交、回滚事务,新增、批量新增、修改、批量修改、删除、批量删除数据,查找、分页、求和、统计数据,调用自定义方法返回数据。本实施例中使得所述用户操作接口11包含了电子商务网站中的大部分数据库操作需求,开发人员通过此接口,即无需再编写复杂的数据库操作代码,实现数据库的快速操作,大大减轻了开发人员的工作量,使得他们有更多的精力去处理业务逻辑。
例如,所述用户操作接口11定义了一系列操作数据库的方法,用户在直接调用此接口对数据库进行操作时,所述用户操作接口11中传入的参数均为实体对象,如果传入的是条件,使用TSQL(Transact Structured Query Language,标准结构化查询语言增强版)的语法,但语句中使用对象的属性而不是使用数据库的字段名,比如,一个实体的属性名称为品牌,数据表中对应的字段叫Brand,则条件语句示例为:“品牌=‘大众’”。
此时所述用户操作接口11包含了16个方法,如下:
D01打开数据库,所有数据库操作步骤的第一步,连接并打开指定的数据库。
D02关闭数据库,所有数据库操作步骤的最后一步,使用完之后,关闭数据库连接。
D03开启数据库事务,当一组操作需要共同成功或者失败时,需要使用此方法开启数据库事务,以便保证后续的所有操作结果具有共性。
D04提交数据库事务,在开启数据库事务,执行了一系列数据操作之后,使用此方法提交事务。
D05回滚数据库事务,在开启数据库事务并执行了一系列的数据操作之后,放弃这些操作。
D06新增一条数据。
D07更新一条数据,根据键值更新一条数据。
D08根据条件批量更新记录,根据自定义的条件,批量更新数据。
D09根据条件删除记录,根据自定义的条件,批量删除数据。
D10获取统计的行数,统计满足条件的数据行数。
D11判断指定数据是否存在,判断指定条件的数据是否存在。
D12获取指定的一条数据,根据指定条件获取一条数据。
D13根据条件返回数据列表,根据指定的条件,获取一批数据。
D14根据条件返回指定条数的数据列表,根据指定的条件,获取指定条数的数据记录。
D15根据条件返回指定的分页数据列表,根据指定的条件,返回指定页的数据。
D16执行用户自定义方法,当以上方法无法满足用户需求时,此接口会通过配置文件中的配置,反射创建用户自定义方法并执行。
所述数据操作模块12用于解析指令信息抽取数据库操作对象并检测数据映射对象在内存16中是否建立,并在内存16中没有包含所述数据库操作对象的数据映射对象时,将所述数据库操作对象所映射的数据库关联建立数据映射对象并写入内存16。
也就是说,所述数据操作模块12提供对所述用户操作接口11的实现,根据实际使用的不同类型数据库,结合数据映射模块13,使用不同的数据库操作接口14,实现快速数据操作。
所述数据映射模块13还用于将从一配置文件中获得所述数据映射对象中数据库2的类型和连接字符串以及与所述数据库2关联的实体的属性写入数据映射对象。
所述数据映射模块13还用于遍历所述配置文件所有内容,并验证所述内容的数据正确性。
所述数据库操作接口14基于内存16中的所述数据映射对象、所述数据库操作对象以及基础操作集合生成数据库操作代码。所述数据库2用于执行所述数据库操作代码并反馈操作结果。
所述数据库操作模块15对应于不同的数据库,封装不同的基础操作集合,进而来实现数据库操作接口14,提供了所述数据库2的具体操作的实现。
例如:在所述数据库操作接口14定义了各种类型数据库的TSQL语法方法,这些方法会返回相应数据库的TSQL语句,在所述数据库操作模块15中,会调用这些方法获取具体的TSQL语句,然后使用这些语句实际操作数据库,具体包含的方法如下:
I01获取一个的数据工厂,所述数据库操作模块15通过此工厂,创建不同的数据库操作对象,进行数据库的实际操作。
I02获取一个对象的默认查询TSQL语句。
I03获取一个插入单条数据的TSQL语句。
I04获取一个更新单条数据的TSQL语句。
I05获取一个批量更新数据的TSQL语句。
I06获取一个批量删除数据的TSQL语句。
I07获取一个按条件统计的TSQL语句。
I08获取一个按条件获取单条数据的TSQL语句。
I09获取一个按条件,有序且指定返回多少条数据的TSQL语句。
I10获取一个对象集合,此集合是按条件、指定页大小、指定数据页、指定排序的数据集合,在获取集合的同时,以OUT的形式给出数据记录总数,总页数。
而且2个所述数据库操作模块15提供了对数据库操作接口14的实现,根据数据库2类型的不同,返回不同的结果、。如果是SQL Server数据库,则各实现方法返回的TSQL会是SQL Server的语法,分页获取数据时会使用已经初始化好的分页存储过程。如果是Access数据,则各方法返回的TSQL会是Access数据库的语法,分页会采用程序判定的形式进行分页。如果是MySql的数据库,则返回的TSQL就是MySql的语法。
其中所述配置文件存储数据库的类型及连接信息,应用程序中的实体对象与实际数据表之间的映射、实体对象与实体对象之间的关联关系以及对象的特殊操作所对应的自定义方法。其中如图2所示,本实施例中所述XML配置文件的封装流程如下:
S11,获取2个数据库2的类型和连接字符串。
S12,从多个应用中获取实体,并确定各个实体的属性与各个数据库2的数据表的关系。
S13,将所述数据库2的类型和连接字符串和各个实体的属性与各个数据库2的数据表的关系封装到XML配置文件中。
具体地说,在进行XML配置文件的封装前,首先构建和设计数据库,需要根据业务需要进行详细的数据设计,创建数据库,并创建数据库中的相关表,其中是否需要创建索引及视图,可根据实际需要。
然后在数据库设计完毕后,在应用程序中构建所需的对象,也可以叫做实体。在一般的程序中,实体都是以类的形式存在,可根据业务需要创建n个实体类。此时可以使用一些市面上开源的代码生成工具,根据数据表自动创建这些实体类,在创建完毕后,再对这些实体进行调整。
在数据库设计完毕,实体类创建完成后,进行XML配置文件的封装。XML配置文件中可以定义数据库的类型、完整的连接字符串,以及数据表中字段与程序实体属性之间的关系,配置文件的扩展名使用.config,配置文件的存放位置,可以在应用程序文件夹下的任意位置,下面给出了一个XML配置文件的示例,一个完整的XML配置文件格式如下:
下面对这个XML配置的示例进行详细说明:
X1声明了这是一个XML文件,并批定了此XML文件的编码方式。
X2使用一个固定的节点,此处定为QuickData,以便数据库操作装置识别。
X3定义了此XML配置对应的数据库类型,数据库操作装置根据此节点识别数据库类型,并采用不同的方式操作各种数据库。
X4是一个完整的数据库连接串,数据库操作装置使用此串进行数据库连接。
X5代表的是系统中的对象集合,可能是一个,也可能是多个。其中各属性含义如下:
classFullname属性代表的是对象的全名;
table表示此对象映射到数据库中的具体表名;
customDataClass节点代表此对象如果使用是自定义方法来处理映射,那么具体是哪个程序集中的哪个类来处理,此节点一共两个值:程序集名称,自定义方法名称。
X5.1表示此对象包含的属性集合。
X5.1.1表示此对象包含的各个属性,每个属性以一个节点的形式存在。其中各属性含义如下:
name代表是对象属性名称;
columnname表示是此属性映射到数据表中的具体字段名;type代表属性的类型;
length表示此属性占用的字节长度。
PrimaryKey表示此属性是否为一个键值,如果是键值,则不能重复,更新数据时,在不指定特定条件的情况下,会根据键值来更新数据;
Iddentity表示此属性是否为自增长属性,如果是自增长属性,那么在新增数据时,数据操作装置会取得最新的增长值,赋回给此属性;
defaultVale表示此属性的默认值。当新增数据时,如果此属性没有赋值,则使用此默认值。
X5.2表示此对象与其他对象的关联关系,可能存在一种或多种关系,如果是多种关系,则X5.2也以一个列表的形式存在。其中各属性的定义如下:
Table表示具体关联到DB中的具体表名;
Condition表示关联逻辑;
Type表示采取哪种关联方式;
X5.21表示关联出来的数据与对象属性之间的映射关系,可以是一个,也可以是多个。各节点的含义跟X5.1.1中节点的含义相同。
在上述的XML配置文件中如果需要使用多个数据库时,可以为每一个数据库建议独立的配置文件。
本实施例的数据库操作装置在上述XML配置文件的基础上进行数据库操作,其中如图3所示,所述数据库操作包括以下步骤:
S21,从输入的一指令信息中解析抽取数据库操作对象。接收用户的操作并判断操作的对象。
S22,检测是否已建立了包含所述数据库操作对象所映射的数据库的一数据映射对象,若是则进入步骤S28,否则进入步骤S23。判断数据映射模块中是否已在内存中建立了数据映射对象,若存在,则直接从内存中调用所述数据映射对象进行相应的数据库操作,否则在内存中建立新的数据映射对象。
S23,将所述数据库操作对象所映射的数据库关联建立一个数据映射对象。
S24,遍历所述XML配置文件所有内容,并验证所述内容的数据正确性。
S25,从所述XML配置文件获得所述数据映射对象中数据库的类型和连接字符串以及与所述数据库关联的实体的属性。
S26,基于所述数据库的类型建立基础操作集合。
S27,将所述数据库的类型和连接字符串、与所述数据库关联的实体的属性和所述基础操作集合加入所述数据映射对象并写入内存。
步骤S23至步骤S27中就是在内存中建立一个数据映射对象。并加载配置文件。其中根据XML配置文件判断数据库类型,将数据库类型,连接串等信息写入内存中的数据映射对象,并根据数据库类型的不同,创建不同的基础操作集合,比如SqlServer数据库的分页存储过程,在此时进行创建。此后对XML配置文件中的所有节点进行遍历。首先验证每个节点的数据正确性,再对各对象之间的关系进行分析处理,并放入数据映射对象,再将用户的自定义类和接口放置进入数据映射对象,当上述工作完毕后,会读取所有的对象属性字段映射、关系对象中的属性,加载入映射对象,最后将此对象的默认查询TSQL也放入数据映射对象,供数据操作模块等使用。
S28,基于所述数据库操作对象和所述数据映射对象生成数据库操作代码。
S29,所述数据库操作对象所映射的数据库执行所述数据库操作代码。
在建立或调用了数据映射对象之后,当调用用户操作接口进行操作时,会对用户传入的对象进行分析,然后调用不同的数据库操作接口进行操作,将对象操作转化成最基础的数据库操作语句,如果用户调用的是自定义方法,则在此处反射创建自定义方法,执行并返回结果。
综上所述,在上述XML配置文件的基础上进行数据库操作时,实际上只需要创建一个实际的操作类,然后调用相关的操作接口,传入被操作的对象,就可以完成所需的工作。比如,使用数据操作装置往数据库中新增一条记录,编码方法如下:
创建一个数据操作类
打开数据库连接
调用数据操作接口的新增一条数据方法
关闭数据库连接
如果使用C#语法操作SqlServer数据库作为示例,编码方式如下:
QuickData.IDATABASE testDB=QuickData.Data.Create(XML配置文件地址);//获取操作实体类
testDB.OpenConnection();//打开数据库连接
testDB.Insert<实体类型>(实体对象);//插入一条新数据
testDB.CloseConnection();//关闭数据库连接
然而基于现有技术,则开发人员需要编写大量的代码,比如,如果需要往一个数据库插入一条数据,现有地编码方式如下:
创建一个数据库对象
打开数据库连接
创建一个TSQL命令对象
解析要操作的数据对象,生成TSQL语句
将TSQL语句赋给命令对象
分别传入TSQL中所需的参数
使用数据库对象执行命令
关闭数据库
可见现对于现有技术本发明的代码将变的非常简洁。而且进一步地,如果是一个更复杂一点的操作,也是同样简单,比如需要往一个数据表插入一条数据,再更新另一个表中的数据,最后,再按条件给出一个分页查询的结果。如果使用C#语法操作SqlServer数据库作为示例,编码方式如下:
QuickData.IDATABASE testDB=QuickData.Data.Create(XML配置文件地址);//获取实体操作类
testDB.OpenConnection();//打开数据库
testDB.OpenTranscation();//开启事务
try{
testDB.Insert<实体类型1>(实体对象1);//新增数据
testDB.Update<实体类型2>(实体对象2);//更新数据
testDB.Commit();//提交事务
}
catch{testDB..RollBack();//回滚事务}
//按查询条件、排序条件,取出当前页的数据,并获得记录总数及页总数
对象List=testDB.List<实体类型>(查询条件,排序条件,当前页,每页数据,out记录总数,out页总数);
testDB.CloseConnection();//关闭数据库
如果发现用户操作接口提供的16个方法还不足以满足要求,可以通过以下方式调用自定义方法:
testDB.CustomMethod<实体类型>("自定义方法名称",参数1,……,参数n);
至此,一切对数据库的操作都变的非常简单。另外,本申请还有以下诸多好处:
1、当数据表中的字段或者实体类中的属性名称发生改变时,开发人员不用进行任何编码操作,只需要对配置文件做相应的修改即可。
2、现在的应用程序大部分采用的是三层架构,分为表示层、逻辑层、数据层三层,每层各司其职,数据层封装了对数据库的所有操作,这些操作在方式上基本上只有那么几种,大量的编码工作都属于重复劳动。并且对于事务的封装也基本放在数据层中处理。但是事务的开启与否是由业务逻辑来决定的,这样就有了冲突,如果将事务拿到逻辑层中去操作,则将数据层中的数据对象暴露给了逻辑层,开发人员可以直接在逻辑层去做数据层要处理的事情。层与层的界线将不再清晰,随着开发人员的增多,编码风格的不同,程序将变的难以维护。维护成本将逐渐上升。使用数据操作装置之后,除了一些自定义的方法,已经将数据层完全抛弃,开发人员不用再去重复编写每一个数据表的操作代码,大大减少了编码工作量,提高了开发效率,并且对数据库的操作方法将变得简洁统一,事务交由逻辑层控制,跟业务逻辑捆绑在一起,代码将始终简洁清晰,有效节省了后期的维护成本。
通过以上的数据库操作装置的具体实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM(只读存储器/随机存取存储器)、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC(个人电脑)、小型计机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (8)
1.一种数据库操作方法,其特征在于,所述数据库操作方法使用通过一种数据库的配置文件的封装方法获得的配置文件,所述封装方法包括以下步骤:
S11、获取一个或多个数据库的类型和连接字符串;
S12、从一个或多个应用中获取实体,并确定各个实体的属性与各个数据库的数据表的关系;
S13、将所述数据库的类型和连接字符串和各个实体的属性与各个数据库的数据表的关系封装到一个配置文件中;
所述数据库操作方法包括以下步骤:
S21、从输入的一指令信息中解析抽取数据库操作对象;
S22、检测是否已建立了包含所述数据库操作对象所映射的数据库的一数据映射对象,若是则进入步骤S27,否则进入步骤S23;
S23、将所述数据库操作对象所映射的数据库关联建立一个数据映射对象;
S24、从所述配置文件获得所述数据映射对象中数据库的类型和连接字符串以及与所述数据库关联的实体的属性;
S25、基于所述数据库的类型建立基础操作集合;
S26、将所述数据库的类型和连接字符串、与所述数据库关联的实体的属性和所述基础操作集合加入所述数据映射对象并写入内存;
S27、基于所述数据库操作对象和所述数据映射对象生成数据库操作代码;
S28、所述数据库操作对象所映射的数据库执行所述数据库操作代码。
2.如权利要求1所述的数据库操作方法,其特征在于,所述配置文件为一XML文件。
3.如权利要求1所述的数据库操作方法,其特征在于,步骤S23和步骤S24之间包括以下步骤:
遍历所述配置文件所有内容,并验证所述内容的数据正确性。
4.如权利要求1-3中任一项所述的数据库操作方法,其特征在于,所述基础操作集合包括打开数据连接、关闭数据连接,创建事务、提交事务、回滚事务,新增数据、修改数据、删除数据,查找、分页、求和和统计数据。
5.如权利要求4所述的数据库操作方法,其特征在于,所述新增数据包括批量新增数据,所述修改数据包括批量修改数据,所述删除数据包括批量删除数据。
6.一种数据库操作装置,其特征在于,所述数据库操作装置包括一服务器和至少一个数据库;所述服务器使用如权利要求1-5中任一项所述的数据库操作方法;
其中所述服务器包括用于接收指令信息一用户操作接口、一数据操作模块、一数据映射模块、一数据库操作接口、用于生成基础操作集合的至少一个数据库操作模块和一内存;
所述数据操作模块用于解析指令信息抽取数据库操作对象并检测数据映射对象在内存中是否建立;
所述数据映射模块用于将所述数据库操作对象所映射的数据库关联建立数据映射对象并写入内存;
所述数据映射模块还用于将从所述配置文件获得所述数据映射对象中数据库的类型和连接字符串以及与所述数据库关联的实体的属性写入数据映射对象;
所述数据库操作接口基于内存中的所述数据映射对象、所述数据库操作对象以及基础操作集合生成数据库操作代码;所述数据库用于执行所述数据库操作代码并反馈操作结果。
7.如权利要求6所述的数据库操作装置,其特征在于,所述数据映射模块还用于遍历所述配置文件所有内容,并验证所述内容的数据正确性。
8.如权利要求6或7所述的数据库操作装置,其特征在于,所述数据库为SQLServer、ACCESS或MySql。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310259740.2A CN103853803B (zh) | 2013-06-26 | 2013-06-26 | 数据库的配置文件的封装方法和操作方法及其操作装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310259740.2A CN103853803B (zh) | 2013-06-26 | 2013-06-26 | 数据库的配置文件的封装方法和操作方法及其操作装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103853803A CN103853803A (zh) | 2014-06-11 |
CN103853803B true CN103853803B (zh) | 2017-04-19 |
Family
ID=50861467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310259740.2A Active CN103853803B (zh) | 2013-06-26 | 2013-06-26 | 数据库的配置文件的封装方法和操作方法及其操作装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103853803B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104267932B (zh) * | 2014-08-12 | 2017-11-07 | 广州华多网络科技有限公司 | 数据库操作方法、装置及服务器 |
CN104536963B (zh) * | 2014-11-13 | 2019-01-25 | 中国建设银行股份有限公司 | 一种存储过程的调度方法和系统 |
CN105468984A (zh) * | 2015-11-19 | 2016-04-06 | 浪潮电子信息产业股份有限公司 | 一种实现操作系统安全的方法和装置 |
CN105468717B (zh) * | 2015-11-20 | 2020-11-10 | 北京百度网讯科技有限公司 | 数据库操作方法和装置 |
CN106528228B (zh) * | 2016-11-01 | 2019-12-24 | 中国银联股份有限公司 | 一种对存储系统的操作实现方法及装置 |
CN106775719B (zh) * | 2016-12-16 | 2020-03-20 | 四川长虹电器股份有限公司 | 基于移动终端的跨平台的轻量数据库封装方法及系统 |
CN106874364A (zh) * | 2016-12-30 | 2017-06-20 | 厦门南讯软件科技有限公司 | 基于xml配置的动态化sql查询方法 |
CN106777390A (zh) * | 2017-02-20 | 2017-05-31 | 济南浪潮高新科技投资发展有限公司 | 一种数据库的连接方法及装置 |
CN107657038B (zh) * | 2017-09-29 | 2021-06-08 | 北京酷我科技有限公司 | 一种数据库快速读取方法 |
CN107577811A (zh) * | 2017-09-29 | 2018-01-12 | 北京酷我科技有限公司 | 一种实体数据库快速读取的方法 |
CN107577817A (zh) * | 2017-09-30 | 2018-01-12 | 北京酷我科技有限公司 | 一种实体数据库的读写方法 |
CN107577818A (zh) * | 2017-09-30 | 2018-01-12 | 北京酷我科技有限公司 | 一种数据库对象布局模型产生的方法 |
CN107577816A (zh) * | 2017-09-30 | 2018-01-12 | 北京酷我科技有限公司 | 一种实体数据库读写的方法 |
CN109725901B (zh) * | 2018-05-31 | 2024-03-29 | 中国平安人寿保险股份有限公司 | 前端代码的开发方法、装置、设备和计算机存储介质 |
CN108804685B (zh) * | 2018-06-13 | 2021-06-15 | 中国建设银行股份有限公司 | 一种资产托管监督任务的处理方法及装置 |
CN109582697A (zh) * | 2018-12-24 | 2019-04-05 | 上海银赛计算机科技有限公司 | 多表动态关联查询方法、装置、服务器及存储介质 |
CN109977104B (zh) * | 2019-04-01 | 2021-04-16 | 重庆紫光华山智安科技有限公司 | 数据管理方法及装置 |
CN110209717B (zh) * | 2019-04-25 | 2024-01-30 | 平安科技(深圳)有限公司 | 基础数据库的封装方法、装置、计算机设备和存储介质 |
CN112286907A (zh) * | 2020-10-26 | 2021-01-29 | 中信百信银行股份有限公司 | 一种数据库配置方法、装置、电子设备和可读存储介质 |
CN114661830B (zh) * | 2022-03-09 | 2023-03-24 | 苏州工业大数据创新中心有限公司 | 一种数据处理方法、装置、终端和存储介质 |
CN114896273B (zh) * | 2022-07-12 | 2022-11-01 | 苏州青颖飞帆软件科技有限公司 | 一种兼容存储过程的sql语句配置方法、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271473A (zh) * | 2008-04-29 | 2008-09-24 | 华为技术有限公司 | 数据查询方法、装置及系统 |
CN101739453A (zh) * | 2009-12-17 | 2010-06-16 | 中国电力科学研究院 | 一种对数据库表进行条件查询的方法及装置 |
CN102004741A (zh) * | 2009-09-01 | 2011-04-06 | 上海杉达学院 | 数据库访问系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080319958A1 (en) * | 2007-06-22 | 2008-12-25 | Sutirtha Bhattacharya | Dynamic Metadata based Query Formulation for Multiple Heterogeneous Database Systems |
-
2013
- 2013-06-26 CN CN201310259740.2A patent/CN103853803B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101271473A (zh) * | 2008-04-29 | 2008-09-24 | 华为技术有限公司 | 数据查询方法、装置及系统 |
CN102004741A (zh) * | 2009-09-01 | 2011-04-06 | 上海杉达学院 | 数据库访问系统 |
CN101739453A (zh) * | 2009-12-17 | 2010-06-16 | 中国电力科学研究院 | 一种对数据库表进行条件查询的方法及装置 |
Non-Patent Citations (1)
Title |
---|
一种基于DAO设计模式与Hibernate框架的数据持久化层模型;欧阳宏基 等;《微计算机应用》;20090331;第30卷(第3期);第38页第4.1节至第39页第4.2节 * |
Also Published As
Publication number | Publication date |
---|---|
CN103853803A (zh) | 2014-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103853803B (zh) | 数据库的配置文件的封装方法和操作方法及其操作装置 | |
US11714792B2 (en) | Creating data in a data store using a dynamic ontology | |
CA2246940C (en) | Method and means for encoding storing and retrieving hierarchical data processing information for a computer system | |
Huck et al. | Jedi: Extracting and synthesizing information from the web | |
US6240422B1 (en) | Object to relational database mapping infrastructure in a customer care and billing system | |
Luján-Mora et al. | Multidimensional modeling with UML package diagrams | |
US5721895A (en) | Computer program product and program storage device for a data transmission dictionary for encoding, storing, and retrieving hierarchical data processing information for a computer system | |
US20040133581A1 (en) | Database management system, data structure generating method for database management system, and storage medium therefor | |
US20100153349A1 (en) | Continuous, automated database-table partitioning and database-schema evolution | |
CN103853718B (zh) | 分片数据库访问方法及数据库系统 | |
US20040036719A1 (en) | Quicker development of database applications having a graphical user interface | |
EP1076863A1 (en) | A system and method for accessing data stores as objects | |
US20010037228A1 (en) | System and method for using metadata to flexibly analyze data | |
CN107291471A (zh) | 一种支持可定制化数据采集的元模型框架系统 | |
CN111913713B (zh) | 一种基于服务调用追踪的异构服务集成方法 | |
CN106095698A (zh) | 面向对象的缓存写入、读取方法及装置 | |
CN110019287A (zh) | 执行结构化查询语言sql指令的方法和装置 | |
CN109710220A (zh) | 关系型数据库查询方法、装置、设备及存储介质 | |
CN105205103B (zh) | 访问数据库的方法和装置 | |
JP2006505030A (ja) | コンテクストデータの表示及び検索方法 | |
CN112698819A (zh) | 面向树化对象编程程序设计方法、装置及存储介质 | |
CN103809944A (zh) | 一种基于jdbc的web数据库开发组件的方法 | |
KR100943294B1 (ko) | 데이터 포털 서비스 시스템 및 방법 | |
Buchmann et al. | Evaluation criteria for logical database design methodologies | |
CN1322418C (zh) | 实现对象持续化服务的系统及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20160205 Address after: 200335 Shanghai city Changning District Admiralty Road No. 968 Building No. 16 10 floor Applicant after: SHANGHAI XIECHENG BUSINESS CO., LTD. Address before: 200335 Shanghai City, Changning District Fuquan Road No. 99, Ctrip network technology building Applicant before: Ctrip computer technology (Shanghai) Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |