CN110069244A - 一种数据库系统 - Google Patents

一种数据库系统 Download PDF

Info

Publication number
CN110069244A
CN110069244A CN201910202392.2A CN201910202392A CN110069244A CN 110069244 A CN110069244 A CN 110069244A CN 201910202392 A CN201910202392 A CN 201910202392A CN 110069244 A CN110069244 A CN 110069244A
Authority
CN
China
Prior art keywords
module
data
database
interface
user
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.)
Pending
Application number
CN201910202392.2A
Other languages
English (en)
Inventor
钱旭琛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Digital Video Beijing Ltd
Original Assignee
China Digital Video Beijing Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Digital Video Beijing Ltd filed Critical China Digital Video Beijing Ltd
Priority to CN201910202392.2A priority Critical patent/CN110069244A/zh
Publication of CN110069244A publication Critical patent/CN110069244A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提出了一种数据库系统,基于C#语言实现,所述数据库系统用于搭建一个完整数据库模块,所述数据库系统包括:异构数据库模块、数据记录映射模块、数据操作接口模块以及数据呈现接口模块;所述异构数据库模块用于封装其它类型的数据库模块的接口,所述数据记录映射模块,用于将所述完整数据库模块中的数据记录映射为创建好的Model集合,所述数据操作接口模块用于根据用户对所述Model集合的操作命令,更新所述完整数据库模块中的数据记录,所述数据呈现接口模块用于将所述Model集合中的数据绑定到用户界面中并对更新后的所述完整数据库模块中的数据记录进行显示;本申请的目的在于提供一种采用C#语言实现的ORM数据数据库系统。

Description

一种数据库系统
技术领域
本发明涉及数据库技术领域,具体涉及一种数据库系统。
背景技术
随着计算机技术的发展,数据库(Database,一种按照数据结构来组织、存储和管理数据的仓库)被广泛地应用于人们的日常生活中,例如:一个学校所有学生信息的数据库,可管理每个学生的数据(如:姓名、年龄等),又或者,一个商店所有的商品信息的数据库,可管理每个商品的数据(如:价格、生产日期等)。当用户需要建立一个数据库来保存某些数据对象时,首先需要搭建一个数据库系统(如:搭建一个ORM数据库系统),或者选择一个已有的数据库系统,相关技术中,可选择Java、Python等开发语言来搭建数据库系统。在一些特殊情景下,可能会使用到C#语言搭建的数据库系统,例如:在软件开发过程中,使用C#语言搭建的数据库系统更能适应整体的软件环境、兼容性更好、后续开发难度较小等等。然而,相关技术中,使用C#语言搭建的数据库系统较少。
发明内容
本申请提供了一种数据库系统,以解决相关技术中的问题。
为解决相关技术中的问题,本发明提供了一种技术方案:一种数据库系统,基于C#语言实现,所述数据库系统用于搭建一个完整数据库模块,所述数据库系统包括:
异构数据库模块,用于封装其它类型的数据库模块的接口,并向所述完整数据库模块提供统一的接口;
数据记录映射模块,用于将所述完整数据库模块中的数据记录映射为创建好的Model集合;
数据操作接口模块,用于根据用户对所述Model集合的操作命令,更新所述完整数据库模块中的数据记录;
数据呈现接口模块,用于将所述Model集合中的数据绑定到用户界面中,并根据用户在所述用户界面输入的对所述Model集合的操作命令,对更新后的所述完整数据库模块中的数据记录进行显示。
可选地,,所述完整数据库模块为基于ORM框架的数据库模块。
可选地,所述用户对所述Model集合的操作命令包括:新增数据记录操作、删除数据记录操作、查找数据记录操作以及修改数据记录操作。
可选地,所述数据操作接口模块包括一个通用的数据库操作接口,所述通用的数据库操作接口包括多个接口函数定义模块,所述多个接口函数模块包括数据库连接函数定义模块、事务操作函数定义模块以及增删查改函数定义模块;
所述通用的数据库操作接口用于根据连接到所述完整数据库模块的所述其它类型的数据库模块的类型,对与各个类型相对应的所述多个接口函数定义模块进行设置。
可选地,所述增删查改函数定义模块的传入参数包括:数据类对象、数据库名称以及事务对象;所述增删查改函数定义模块包括:
新增数据记录模块,用于执行所述新增数据记录操作;
删除数据记录模块,用于执行所述删除数据记录操作;
查询数据记录模块,用于执行所述查询数据记录操作;
修改数据记录模块,用于执行所述修改数据记录操作。
可选地,所述数据呈现接口模块包括:控件操作接口;
在所述用户界面接收到对所述Model集合的操作命令后,所述控件操作接口用于根据所述操作命令得出用户的目标操作对象,并将所述目标操作对象绑定到对象显示控件,所述目标操作对象为更新后的所述完整数据库模块中的数据记录,所述对象显示控件用于在所述用户界面显示所述目标操作对象。
可选地,所述数据记录映射模块包括:
自定义模块,用于对自定义特性类进行自定义,并为数据记录描述类添加自定义特性。
可选地,所述自定义特性类的数据描述字段包括:
bindName,用于定义所述目标操作对象呈现到所述用户界面时显示的表的列名;
bindType,用于定义所述目标操作对象呈现到所述用户界面时显示的表的列的类型。
可选地,所述数据操作接口模块包括:
转化模块,用于将用户对所述Model集合的操作命令转化为SQL语句;
执行模块,用于执行所述SQL语句。
可选地,所述其它类型的数据库模块包括一个主数据库模块和多个备用数据库模块;
所述主数据库模块和所述备用数据库模块的类型包括:Oracle、MySQL、SQLServer。
采用本申请提出的数据库系统,可以搭建一个基于C#语言实现的完整数据库模块,由于异构数据库模块可以将其它类型的数据库模块封装成一个统一的接口,并连接到完整数据库模块,这使得用户在使用时,可以在不考虑各个数据库模块的类型的情况下实现对多种数据库模块的操作;所述数据记录映射模块可以将所述完整数据库模块中的数据记录映射为一个集合(例如:上述model集合),增加了用户操作完整数据库模块时的便利性;所述数据呈现接口模块提供了数据绑定的功能,可以根据用户在用户界面输入的操作命令,将目标操作对象绑定到用户界面并进行显示,增加了目标数据库在使用时的灵活性。
附图说明
图1是根据一示例性实施例示出的一种数据库系统的示意图;
图2是根据一示例性实施例示出的增删查改函数定义模块的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1是根据一示例性实施例示出的一种数据库系统的示意图。所述系统基于C#语言实现,且用于搭建一个完整数据库模块107。参照图1,所述数据库系统包括:
异构数据库模块101,用于封装其它类型的数据库模块的接口,并向所述完整数据库模块107提供统一的接口;
数据记录映射模块102,用于将所述完整数据库模块107中的数据记录映射为创建好的Model集合105;
数据操作接口模块103,用于根据用户对所述Model集合105的操作命令,更新所述完整数据库模块107中的数据记录;
数据呈现接口模块104,用于将所述Model集合105中的数据绑定到用户界面中,并根据用户在所述用户界面输入的对所述Model集合105的操作命令,对更新后的所述完整数据库模块107中的数据记录进行显示。
在本实施例中,数据库系统可用于搭建基于C#语言实现的完整数据库模块107,例如:在开发一个项目时,如需要使用基于C#语言实现的数据库模块,只需将数据库系统的代码加入该项目的整体代码中,并进行相应的配置即可。
异构数据库模块101可以对多个其它类型的数据库模块的接口进行封装,形成一个统一的接口,并连接到完整数据库模块107。在本申请各个实施例中,如未特别说明,其它类型的数据库模块可以是类型相同的数据库模块,也可以是类型不同的数据库模块,且其数量可以是N(N>=1)个。例如:异构数据库模块101对N个接口进行封装,且通过这N个接口可以连接的数据库模块的类型可以是Oracle、MySQL或者SQL Server类型等,既可以使所有的数据库模块的类型为Oracle,也可以使其中一个数据库模块的类型为Oracle,其它数据库模块的类型为MySQL等。由于统一的接口的存在,用户在对目标数据库进行操作时,无需考虑其它各个数据库模块的类型,极大地方便了用户的使用。
如未特别说明,在本申请各个实施例中,完整数据库模块107均为基于ORM框架的数据库模块。ORM(object relation mapping,对象关系映射)用于面向对象的对象模型和关系型数据之间的相互转换,对象关系映射模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。
在本实施例中,数据记录映射模块102基于上述的ORM技术,将完整数据库模块107中的数据记录映射为一个集合,即Model集合105。用户需要对完整数据库模块107进行操作时,在用户界面输入对Model集合105的操作命令,数据操作接口模块103接收该操作命令,可以将操作后的数据持久化地更新到完整数据库模块107中。
完整数据库模块107可以连接到多个其它类型的数据库模块,也可不连接其它类型的数据库模块,但是通常情况下,完整数据库模块107至少连接到一个其它类型的数据库模块,以备份用户对完整数据库模块107的历史操作。在本申请各个实施例中,如未特别说明,目标数据库均指的完整数据库模块107,但用户也可以对连接到的其它类型的数据库模块进行操作,对其它类型的数据库模块的操作过程与对完整数据库模块107进行操作的过程类似。
完整数据库模块107连接到其它类型的数据库模块后,且用户需要对完整数据库模块107进行操作时,数据记录映射模块102基于上述的ORM技术,首先将完整数据库模块107中的数据记录映射为一个集合,即Model集合105;然后,用户在用户界面输入对Model集合105的操作命令,数据操作接口模块103接收该操作命令,不仅可以将操作后的数据持久化地更新到完整数据库模块107中,还可以同时将操作后的数据持久化地更新到连接到完整数据库模块107的其它类型的数据库模块中。
数据呈现接口模块104主要用于将用户请求的数据显示在用户界面中。以用户查询完整数据库模块107中的一条数据记录A为例,用户在用户界面输入对数据记录A的查询命令,数据操作接口模块103获取到该查询命令,分析该命令并将分析结果告知数据呈现接口模块104,以将基于完整数据库模块107映射得到的Model集合105中包含该数据记录A的映射后的数据绑定到用户界面中,并进行显示。
当完整数据库模块107连接到其它类型的数据库模块时,以用户查询其它类型的数据库模块中的一条数据记录B为例,用户在用户界面设置好需要操作的其它类型的数据库模块所需要的配置项,再输入对数据记录B的查询命令,数据操作接口模块103获取到该查询命令,分析该命令并将分析结果告知数据呈现接口模块104,以将基于其它类型的数据库模块映射得到的Model集合105中包含该数据记录B的映射后的数据绑定到用户界面中,并进行显示。
在本实施例中,数据库系统可以搭建一个基于C#语言实现的完整数据库模块107,由于异构数据库模块可以将其它类型的数据库模块封装成一个统一的接口,并连接到完整数据库模块107,这使得用户可以在不考虑各个数据库模块的类型的情况下实现对多种类型的数据库模块的操作;数据记录映射模块102可以将完整数据库模块107中的数据记录映射为一个集合(例如:上述Model集合105),增加了用户操作完整数据库模块时的便利性;数据呈现接口模块104提供了数据绑定的功能,可以根据用户在用户界面输入的操作命令,将目标操作对象绑定到用户界面并进行显示,增加目标数据库在使用时的灵活性。
在本申请各个实施例中,所述用户对所述Model集合105的操作命令包括:新增数据记录操作、删除数据记录操作、查找数据记录操作以及修改数据记录操作。
新增数据记录操作提供用户在目标数据库中增加新的数据记录的功能,即提供了用户在完整数据库模块107中增加新的数据记录的功能,例如:用户需要在完整数据库模块107中增加一条新的数据记录A,在用户界面中选择与新增数据记录操作相对应的命令即可,然后,用户根据指示在用户界面中输入需要增加的新的数据记录A,数据操作接口从用户界面获取到该命令,分析该命令,并按照分析结果将用户输入的数据记录A更新到目标数据库中,其中,如前文所述,目标数据库通常指完整的数据库模块107。
下面是在目标数据库中增加新的数据记录的示例,在这之前,还需要完成创建数据库、创建数据表以及创建映射类。
创建数据库:按照相关技术提供的方式创建即可,例如:使用MySQL创建一个数据库TestDB。
创建数据表:创建好数据库TestDB后,继续在数据库TestDB中创建数据表,创建好的一个数据表示例如下:
创建映射类:在数据库TestDB中,每个数据库对应有一个映射类,上述名为CE_PERSON的数据表对应的映射类如下:
上述名为CE_PERSON的数据表对应的映射类创建好后,就可以增加一条新的数据记录,操作的主要步骤如下:
首先,创建数据映射类对象:
CE_Person new_person=new CE_Person();
然后,为对象赋值:
new_person.p_id=“132527199912121245”;
new_person.p_name=“张小虎”;
new_person.p_birthday=DateTime.Parse(“1999-12-12”);
最后,写入目标数据库:
DBManagement.Insert<CE_Person>(new_person,“CE_PERSON”)
完成上述操作后,目标数据库中的CE_PERSON表中便会增加一条新的数据记录。
删除数据记录操作提供用户在目标数据库中删除数据记录的功能,例如:用户需要在目标数据库中删除一条数据记录B,在用户界面中选择与删除数据记录操作相对应的命令即可,例如将上述对象进行删除的操作可以如下:
DBManagement.Delete<CE_Person>(new_person,“CE_PERSON”,new string[]{“ID”})
此时,目标数据库会将id=“132527199912121245”的记录删除。
查找数据记录操作提供用户在数据库中查找数据记录的功能,例如:如用户需要在目标数据库中查找一条数据记录C,在用户界面中选择与查找数据记录操作相对应的命令即可,例如查询上述对象的操作可以如下:
String sql=“select*from ce_person where id=“132527199912121245”;
List<CE_Person>personList=DBManagement.Query<CE_Person>(sql,“CE_PERSON”)
此时,框架会将sql对应的记录映射为CE_Person类。
修改数据记录操作提供用户在目标数据库中修改数据记录的功能,例如:如用户需要在数据库中修改一条数据记录D,在用户界面中选择与修改数据记录操作相对应的命令即可,例如将前述“张小虎”改为“张小胖”的操作可以如下:
首先,对象赋值:
new_person.p_name=“张小胖”;
然后,更新目标数据库:
DBManagement.Update<CE_Person>(new_person,“CE_PERSON”,new string[]{“ID”})
此时,目标数据库会同步更新,将ID=“132527199912121245”的记录中Name字段更新为“张小胖”。
在本申请实施例中,用户对目标数据库的新增数据记录操作、删除数据记录操作以及修改数据记录操作,会同时更新到其它类型的数据库模块中,但是对于查找数据记录操作,通常只在目标数据库中执行。
参照图1,所述数据操作接口模块103包括一个通用的数据库操作接口106,所述通用的数据库操作接口106包括多个接口函数定义模块,所述多个接口函数模块包括数据库连接函数定义模块、事务操作函数定义模块以及增删查改函数定义模块108;
所述通用的数据库操作接口106用于根据连接到所述完整数据库模块107的所述其它类型的数据库模块的类型,对与各个类型相对应的所述多个接口函数定义模块进行设置。
在本实施例中,当需要连接到其它类型的数据库模块时,需要在通用的数据库操作接口106中对其它类型的数据库模块进行配置,具体地,对通用的数据库操作接口106中的多个接口函数定义模块进行配置,例如:在数据库连接函数定义模块中定义连接其它类型的数据库模块的函数,又例如:在增删查改函数定义模块108中定义对其它类型的数据库模块的操作等。
不同类型的数据库模块在多个接口函数定义模块的配置一般不同,以连接到一个类型为Oracle的数据库模块为例,此时在数据库连接函数定义模块、事务操作函数定义模块以及增删查改函数定义模块108中的配置一般要与Oracle类型的数据库模块的特点匹配,而连接到一个类型为MySQL的数据库模块时,此时在数据库连接函数定义模块、事务操作函数定义模块以及增删查改函数定义模块108中的配置又会与MySQL类型的数据库模块的特点匹配。
在本实施例中,通过通用的数据库操作接口106,可以连接到多个类型不同的其它数据库模块,用户在对目标数据库进行操作时,直接调用通用的数据库操作接口106即可,而无需考虑其它数据库模块的类型,增强了用户操作的便利性。
图2是根据一示例性实施例示出的增删查改函数定义模块的示意图。在对多个接口函数定义模块进行配置时,其中,增删查改函数定义模块108的传入参数包括:数据类对象、数据库名称以及事务对象;参照图2,所述增删查改函数定义模块108包括:
新增数据记录模块1081,用于执行所述新增数据记录操作;
删除数据记录模块1082,用于执行所述删除数据记录操作;
查询数据记录模块1083,用于执行所述查询数据记录操作;
修改数据记录模块1084,用于执行所述修改数据记录操作。
在本实施例中,用户在用户界面上选择对目标数据库的操作,如前述的新增数据记录操作、删除数据记录操作、查找数据记录操作以及修改数据记录操作,然后数据操作接口模块103对相应的命令进行分析并执行,例如:用户选择新增某条数据记录的操作由新增数据记录模块1081执行;用户选择删除某条数据记录的操作由删除数据记录模块1082执行;用户选择查找某条数据记录的操作由查询数据记录模块1083执行;用户选择修改某条数据记录的操作由修改数据记录模块1084执行。
以用户在目标数据库中新增一条数据记录为例,用户在用户界面选择与新增数据记录操作相对应的命令后,数据操作接口模块103中的新增数据记录模块1081对用户请求的数据进行分析,得到此次请求的多个参数,例如:数据类对象、数据库名称以及事务对象等,并根据这些参数在目标数据库中更新用户新增的数据记录。
参照图1,所述数据呈现接口模块104包括:控件操作接口1041;
在所述用户界面接收到对所述Model集合105的操作命令后,所述控件操作接口1041用于根据所述操作命令得出用户的目标操作对象,并将所述目标操作对象绑定到对象显示控件,所述目标操作对象为更新后的所述完整数据库模块107中的数据记录,所述对象显示控件用于在所述用户界面显示所述目标操作对象。
在本实施例中,数据呈现接口模块104对目标操作对象进行显示的具体过程为:数据操作接口模块103获取到用户在用户界面上选择的操作命令,分析该操作命令,得到分析结果,并将该分析结果发送给控件操作接口1041(C#默认提供DataGridView控件的操作接口,用于数据的展示),控件操作接口1041根据分析结果得到目标操作对象,并将该目标操作对象绑定到对象显示控件,其中,目标操作对象是根据用户的操作命令得出的需要显示到用户界面的数据,且目标操作对象为最近更新的目标数据库中的数据记录。
以用户在目标数据库中查询数据记录A为例,数据呈现接口模块104在从用户界面中读取到查询数据记录操作的命令时,查询数据记录模块1083分析该操作命令,得到分析结果,并将该分析结果发送至控件操作接口1041,控件操作接口1041根据分析结果得到目标操作对象,例如需要查询的目标操作对象是张小虎的个人信息,控件操作接口1041将张小虎的个人信息的请求数据发送给对象显示控件,对象显示控件将张小虎的个人信息显示在用户界面,例如:显示的张小虎的个人信息为“姓名:张小虎;身份证号:132527199912121245;出生日期:1999-12-12等等”,操作过程可以为:
DBManagement.Bind<CE_Person>(personList,datagridview);
此时,个人信息会显示到指定的对象显示控件中,示例如下:
身份证 姓名 出生日期
132527199912121245 张小虎 1999-12-12
参照图1,所述数据记录映射模块102包括:
自定义模块1021,用于对自定义特性类进行自定义,并为数据记录描述类添加自定义特性。
在本实施例中,数据记录映射模块102通过C#语言的反射机制将目标数据库中的数据记录映射为Model集合105,在这个过程中,还可以通过数据库系统提供的自定义特性类为数据记录添加自定义特性,当对数据记录描述类添加这个自定义特性后,本申请的数据库系统便可以识别这个自定义特性的相关信息,其中,相关信息用来建立与目标数据库对应字段的绑定关系。
其中,自定义特性类的构造函数声明如下:
CDVBindAttribute(string sqlName,string bindName,CDVBindType bindType,bool isClob)
sqlName:表示目标数据库表中的字段名称,区分大小写;
isClob:表示该字段是否为二进制数据字段类型;
根据上述构造函数,得出的一个自定义特性类的示例如下:
[CDVBind("CHANAME","频道名称",CDVBindType.text,false)]
public string ChannelName
{
Set;
Set;
}
上述示例中属性ChannelName对应目标数据库中的字段为CHANAME,数据类型为字符串类型。
下面对上述构造函数进行说明。在本申请的各个实施例中,用户输入的操作命令的流向依次为:用户界面、数据操作接口、目标数据库、Model集合、用户界面。本申请只包含一个自定义特性类,如上所述,自定义特性类CDVBindAttribute的构造函数包含4个字段:sqlName、bindName、bindType以及isClob。其中sqlName、isClob在Model与目标数据库之间的通信阶段发挥作用,如果不需要将目标数据库映射为Model集合,sqlName赋值为空即可;bindName、bindType在用户界面与Model集合之间的通信阶段发挥作用,如果不需要将目标操作对象绑定到对象显示控件,bindName赋值为空即可。
例如:一个Model集合包含A、B两个字段,如果想要将目标数据库中的m、n映射为A、B,则需要分别给A、B添加自定义特性(添加过程通过上述自定义特性类的构造函数实现),并设定参数,例如此处分别将A、B对应的自定义特性类的sqlName的值设置为m、n。如果希望在用户界面呈现出A的值,那么需要将参数bindName赋值为呈现的列名,bindType设置为text文本,例如:
[CDVBind("m","列A",CDVBindType.text,false)]
public string A{
get;
set;
}
结合上述实施例,所述自定义特性类的数据描述字段包括:
bindName,用于定义所述目标操作对象呈现到所述用户界面时显示的表的列名;
bindType,用于定义所述目标操作对象呈现到所述用户界面时显示的表的列的类型。
在本实施例中,自定义特性类中的bindName、bindType的字段用于描述数据呈现。例如:
CDVBindAttribute(string sqlName,string bindName,CDVBindType bindType,bool isClob)
bindName:表示最终呈现到用户界面中时,显示的列名称;
bindType:表示最终呈现到用户界面时,显示的列类型,包括:按钮、复选框、文本、超链接;
自定义特性类中字段bindName和字段bindType均用于描述添加了自定义特性后的目标操作对象呈现到用户界面时的状态。例如:bindName用于描述目标操作对象呈现到用户界面时显示的列的名称,bindType用于描述目标操作对象呈现到用户界面时显示的列的类型。最后,通过调用绑定函数将该目标操作对象绑定到对象显示控件,绑定函数为数据库系统提供的BindModelToView函数。
参照图1,所述数据操作接口模块103包括:
转化模块1032,用于将用户对所述Model集合105的操作命令转化为SQL语句;
执行模块1031,用于执行所述SQL语句。
在本实施例中,由于采用的是C#语言,且完整数据库模块107基于ORM框架生成,因此,数据操作接口模块103在用户界面接收到用户的对Model集合105的操作命令后,首先通过一个转化模块1032将命令转化为SQL语句,再由执行模块1031执行该SQL语句以完成用户对目标数据库的操作。
参照图1,所述其它数据库模块包括一个主数据库模块和多个备用数据库模块;
所述主数据库模块和所述备用数据库模块的类型包括:Oracle、MySQL、SQLServer。
在本实施例中,当用户对目标数据库执行任何操作(例如:新增数据记录操作、删除数据记录操作、查找数据记录操作以及修改数据记录操作)时,该操作会在连接到的主数据库模块和备用数据库模块中都执行一次,实现热备份。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (10)

1.一种数据库系统,其特征在于,基于C#语言实现,所述数据库系统用于搭建一个完整数据库模块,所述数据库系统包括:
异构数据库模块,用于封装其它类型的数据库模块的接口,并向所述完整数据库模块提供统一的接口;
数据记录映射模块,用于将所述完整数据库模块中的数据记录映射为创建好的Model集合;
数据操作接口模块,用于根据用户对所述Model集合的操作命令,更新所述完整数据库模块中的数据记录;
数据呈现接口模块,用于将所述Model集合中的数据绑定到用户界面中,并根据用户在所述用户界面输入的对所述Model集合的操作命令,对更新后的所述完整数据库模块中的数据记录进行显示。
2.根据权利要求1所述的数据库系统,其特征在于,所述完整数据库模块为基于ORM框架的数据库模块。
3.根据权利要求1所述的数据库系统,其特征在于,所述用户对所述Model集合的操作命令包括:新增数据记录操作、删除数据记录操作、查找数据记录操作以及修改数据记录操作。
4.根据权利要求1所述的数据库系统,其特征在于,所述数据操作接口模块包括一个通用的数据库操作接口,所述通用的数据库操作接口包括多个接口函数定义模块,所述多个接口函数模块包括数据库连接函数定义模块、事务操作函数定义模块以及增删查改函数定义模块;
所述通用的数据库操作接口用于根据连接到所述完整数据库模块的所述其它类型的数据库模块的类型,对与各个类型相对应的所述多个接口函数定义模块进行设置。
5.根据权利要求4所述的数据库系统,其特征在于,所述增删查改函数定义模块的传入参数包括:数据类对象、数据库名称以及事务对象;所述增删查改函数定义模块包括:
新增数据记录模块,用于执行所述新增数据记录操作;
删除数据记录模块,用于执行所述删除数据记录操作;
查询数据记录模块,用于执行所述查询数据记录操作;
修改数据记录模块,用于执行所述修改数据记录操作。
6.根据权利要求1所述的数据库系统,其特征在于,所述数据呈现接口模块包括:控件操作接口;
在所述用户界面接收到对所述Model集合的操作命令后,所述控件操作接口用于根据所述操作命令得出用户的目标操作对象,并将所述目标操作对象绑定到对象显示控件,所述目标操作对象为更新后的所述完整数据库模块中的数据记录,所述对象显示控件用于在所述用户界面显示所述目标操作对象。
7.根据权利要求6所述的数据库系统,其特征在于,所述数据记录映射模块包括:
自定义模块,用于对自定义特性类进行自定义,并为数据记录描述类添加自定义特性。
8.根据权利要7所述的数据库系统,其特征在于,所述自定义特性类的数据描述字段包括:
bindName,用于定义所述目标操作对象呈现到所述用户界面时显示的表的列名;
bindType,用于定义所述目标操作对象呈现到所述用户界面时显示的表的列的类型。
9.根据权利要求1所述的数据库系统,其特征在于,所述数据操作接口模块还包括:
转化模块,用于将用户对所述Model集合的操作命令转化为SQL语句;
执行模块,用于执行所述SQL语句。
10.根据权利要求1所述的数据库系统,其特征在于,所述其它类型的数据库模块包括一个主数据库模块和多个备用数据库模块;
所述主数据库模块和所述备用数据库模块的类型包括:Oracle、MySQL、SQL Server。
CN201910202392.2A 2019-03-11 2019-03-11 一种数据库系统 Pending CN110069244A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910202392.2A CN110069244A (zh) 2019-03-11 2019-03-11 一种数据库系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910202392.2A CN110069244A (zh) 2019-03-11 2019-03-11 一种数据库系统

Publications (1)

Publication Number Publication Date
CN110069244A true CN110069244A (zh) 2019-07-30

Family

ID=67365333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910202392.2A Pending CN110069244A (zh) 2019-03-11 2019-03-11 一种数据库系统

Country Status (1)

Country Link
CN (1) CN110069244A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110866012A (zh) * 2019-11-11 2020-03-06 北京知道创宇信息技术股份有限公司 表结构管理方法、装置、服务器及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090019103A1 (en) * 2007-07-11 2009-01-15 James Joseph Tommaney Method and system for processing a database query
US20090119641A1 (en) * 2007-11-07 2009-05-07 Microsoft Corporation Programming language extensions in structured queries
CN101645074A (zh) * 2009-09-07 2010-02-10 浪潮集团山东通用软件有限公司 一种访问不同类型关系型数据库的方法
US20130145348A1 (en) * 2011-12-01 2013-06-06 Amer Agovic Universal and adaptive software development platform for data-driven applications
CN103970758A (zh) * 2013-01-29 2014-08-06 鸿富锦精密工业(深圳)有限公司 数据库访问系统及方法
CN104820497A (zh) * 2015-05-08 2015-08-05 东华大学 一种基于增强现实的3d交互显示系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090019103A1 (en) * 2007-07-11 2009-01-15 James Joseph Tommaney Method and system for processing a database query
US20090119641A1 (en) * 2007-11-07 2009-05-07 Microsoft Corporation Programming language extensions in structured queries
CN101645074A (zh) * 2009-09-07 2010-02-10 浪潮集团山东通用软件有限公司 一种访问不同类型关系型数据库的方法
US20130145348A1 (en) * 2011-12-01 2013-06-06 Amer Agovic Universal and adaptive software development platform for data-driven applications
CN103970758A (zh) * 2013-01-29 2014-08-06 鸿富锦精密工业(深圳)有限公司 数据库访问系统及方法
CN104820497A (zh) * 2015-05-08 2015-08-05 东华大学 一种基于增强现实的3d交互显示系统

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
左丹霞: "C#语言开发中的数据库编程技术分析", 《通讯世界》 *
左丹霞: "C#语言开发中的数据库编程技术分析", 《通讯世界》, no. 19, 12 October 2015 (2015-10-12), pages 258 - 259 *
李春梅: "《AORM 持久层框架的设计与实现》", 《安庆师范学院学报( 自然科学版)》, vol. 21, no. 1, pages 71 - 75 *
罗林球;孟琦;李晓;苏国平;张澄澈;: "异构数据库迁移的设计和实现", 计算机应用研究, no. 12 *
陆开怀: "基于C#的远程数据库访问系统的设计和实现", 《微机发展》 *
陆开怀: "基于C#的远程数据库访问系统的设计和实现", 《微机发展》, no. 03, 10 March 2004 (2004-03-10) *
陈建华,肖琦,张玉霞: "异构数据库互访的研究", 东北电力学院学报, no. 04 *
韦明万: "《基于C# 的台站数据库管理系统设计与实现》", 《视听》, no. 4, pages 14 - 16 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110866012A (zh) * 2019-11-11 2020-03-06 北京知道创宇信息技术股份有限公司 表结构管理方法、装置、服务器及可读存储介质

Similar Documents

Publication Publication Date Title
US8423514B2 (en) Service provisioning
US7668798B2 (en) System and method for accessing data in disparate information sources
US10776382B2 (en) Systems and methods for facilitating data transformation
CN104769588B (zh) 队列识别系统
US20110246535A1 (en) Apparatus and Method for Constructing Data Applications in an Unstructured Data Environment
US20190250892A1 (en) Integrating application features into a platform interface based on application metadata
US8886646B2 (en) Field extensibility for analytical reports
US11803532B2 (en) Integrated data analysis
EP1909170B1 (en) Method and system for automatically generating a communication interface
CN110069244A (zh) 一种数据库系统
US7433882B2 (en) Data management system and computer program
AU2016208370B2 (en) Standardized database access system and method
US10911592B2 (en) Method and system for defining an offlinable model graph
US11107560B1 (en) Methods, systems and apparatus for processing and displaying community patient data alongside native patient data
US9361359B1 (en) Accessing schema-free databases
US20110219037A1 (en) High-Performance Persistence Framework
CN118245647A (zh) 数据的检索方法、电子设备、存储介质及计算机程序产品
CN115982127A (zh) 数据库中隐含列的实现方法及设备
Macdonald Recordset Recursion and Data Shaping

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