CN115203176B - 数据库操作方法、装置、设备、存储介质和程序产品 - Google Patents
数据库操作方法、装置、设备、存储介质和程序产品 Download PDFInfo
- Publication number
- CN115203176B CN115203176B CN202211120122.5A CN202211120122A CN115203176B CN 115203176 B CN115203176 B CN 115203176B CN 202211120122 A CN202211120122 A CN 202211120122A CN 115203176 B CN115203176 B CN 115203176B
- Authority
- CN
- China
- Prior art keywords
- database
- data
- configuration file
- attribute
- attributes
- 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/23—Updating
-
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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
- 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/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据库操作方法、装置、设备、存储介质和程序产品,应用于iOS SQLite数据库管理框架中,计算机设备导入预设的第一配置文件和第二配置文件,在接收到用户的数据库构建操作后,利用第二配置文件和数据库配置操作中携带的数据库参数进行数据库初始化处理,得到初始化数据库,在接收到数据编辑操作后,利用第一配置文件和第二配置文件对初始化数据库进行数据操作。将用于配置数据库的数据模型类以及数据处理方法的第一配置文件、以及用于配置数据库操作方法的第二配置文件导入数据库管理框架中,通过继承并调用第一配置文件、第二配置文件中所提供的方法实现数据库的构建以及其他操作,提高构建数据库以及数据操作的效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据库操作方法、装置、设备、存储介质和程序产品。
背景技术
随着计算机技术和大数据技术的发展,移动终端数据库的构建成为了移动终端实现数据处理的重要部分。
在现有的移动终端数据库的构建和数据库操作方法中,例如,在针对移动终端IOS系统的数据库构建场景下,通常每增加一个数据库模型,就需要执行创建数据库表的 SQL脚本、设置所增加的数据库模型中的各个字段的名称、类型、大小以及配置数据库模型对应的新增、删除、修改和查询方法。
显然,上述数据库构建方法以及数据库操作方法存在工作重复且繁琐,从而导致数据库构建以及数据处理效率低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种提高数据库构建以及数据处理效率的数据库操作方法、装置、设备、存储介质和程序产品。
第一方面,本申请提供了一种数据库操作方法,应用于iOS SQLite 数据库管理框架,该方法包括:
导入预设的第一配置文件和第二配置文件;第一配置文件用于配置数据库的数据模型类以及数据处理方法;第二配置文件用于配置数据库操作方法;
在接收到用户的数据库构建操作后,利用第二配置文件和数据库配置操作中携带的数据库参数进行数据库初始化处理,得到初始化数据库;
在接收到数据编辑操作后,利用第一配置文件和第二配置文件对初始化数据库进行数据操作。
在其中一个可选的实施例中,第一配置文件包括数据库的数据模型父类;利用第二配置文件和数据库配置操作中携带的数据库参数进行数据库初始化处理,得到初始化数据库,包括:
获取数据库的属性参数;
基于属性参数以及数据模型父类,执行数据模型父类的继承操作,以得到数据模型子类;
基于数据模型子类、第二配置文件和数据库参数进行数据库初始化处理,得到初始化数据库。
在其中一个可选的实施例中,该方法还包括:
利用数据模型父类中的属性识别方法,确定数据模型子类中所有属性的名称、类型和属性值;
根据各属性的名称、类型和属性值,确定构成数据表的至少一个候选属性;
根据所有候选属性,构建初始化数据库中的数据表。
在其中一个可选的实施例中,该方法还包括:
基于数据模型父类中的属性类型,确定数据表中的一个候选属性作为数据表的唯一主键。
在其中一个可选的实施例中,在接收到数据编辑操作后,利用第一配置文件和第二配置文件对初始化数据库进行数据操作,包括:
在接收到数据编辑操作后,获取数据编辑操作携带的所有属性;
利用第一配置文件中的数据模型父类,确定所有属性的属性名称和属性类型;
根据所有属性的属性名称和属性类型,确定所有属性的数据格式;
在所有属性的数据格式与初始化数据库的数据格式不一致的情况下,对所有属性进行转换处理,得到转换处理后的目标属性;
基于第二配置文件中的数据库操作方法和目标属性,对初始化数据库进行数据操作。
在其中一个可选的实施例中,数据编辑操作包括数据增加操作,数据库操作方法包括数据写入方法;基于第二配置文件中的数据库操作方法和目标属性,对初始化数据库进行数据操作,包括:
利用数据写入方法将目标属性写入至初始化数据库的目标数据表中。
在其中一个可选的实施例中,数据编辑操作包括数据删除操作,数据库操作方法包括数据删除方法;基于第二配置文件中的数据库操作方法和目标属性,对初始化数据库进行数据操作,包括:
利用数据删除方法从初始化数据库的目标数据表中删除目标属性。
在其中一个可选的实施例中,数据编辑操作包括数据修改操作,数据库操作方法包括数据修改方法;基于第二配置文件中的数据库操作方法和目标属性,对初始化数据库进行数据操作,包括:
利用数据修改方法修改初始化数据库的目标数据表中目标属性。
在其中一个可选的实施例中,数据编辑操作包括数据查询操作,数据库操作方法包括数据查询方法;基于第二配置文件中的数据库操作方法和目标属性,对初始化数据库进行数据操作,包括:
利用数据查询方法从初始化数据库的目标数据表中获取目标属性。
在其中一个可选的实施例中,第二配置文件中还包括权限设置方法;该方法还包括:
接收数据库权限配置操作,利用权限设置方法和数据库权限配置操作中携带的权限标识,配置初始化数据库的访问权限;权限标识用于表示初始化数据库为私有数据库或共享数据库。
在其中一个可选的实施例中,第二配置文件还包括数据回调方法;该方法还包括:
在监听到对初始化数据库产生数据操作的情况下,利用所数据回调方法,获取初始化数据库的操作结果;
将初始化数据库的操作结果返回至目标地址;目标地址为注册回调方法的地址。
第二方面,本申请还提供了一种数据库操作装置,该装置包括:
导入模块,用于导入预设的第一配置文件和第二配置文件;第一配置文件用于配置数据库的数据模型类以及数据处理方法;第二配置文件用于配置数据库操作方法;
初始化模块,用于在接收到用户的数据库构建操作后,利用第二配置文件和数据库配置操作中携带的数据库参数进行数据库初始化处理,得到初始化数据库;
操作模块,用于在接收到数据编辑操作后,利用第一配置文件和第二配置文件对初始化数据库进行数据操作。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下第一方面提供的方法。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的方法。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面提供的方法。
上述数据库操作方法、装置、设备、存储介质和程序产品,应用于iOS SQLite 数据库管理框架中,计算机设备导入预设的第一配置文件和第二配置文件,在接收到用户的数据库构建操作后,利用第二配置文件和数据库配置操作中携带的数据库参数进行数据库初始化处理,得到初始化数据库,在接收到数据编辑操作后,利用第一配置文件和第二配置文件对初始化数据库进行数据操作。在本方案中,将用于配置数据库的数据模型类以及数据处理方法的第一配置文件、以及用于配置数据库操作方法的第二配置文件导入iOS SQLite数据库管理框架中,可以通过继承并调用第一配置文件、第二配置文件中所提供的方法实现数据库的构建以及其他操作,不需要再进行重复的代码编译工作,提高构建数据库以及数据操作的效率。
附图说明
图1为一个实施例中数据库操作方法的应用环境图;
图2为一个实施例中数据库操作方法的流程示意图;
图3为另一个实施例中数据库操作方法的流程示意图;
图4为另一个实施例中数据库操作方法的流程示意图;
图5为另一个实施例中数据库操作方法的流程示意图;
图6为另一个实施例中数据库操作方法的流程示意图;
图7为另一个实施例中数据库操作方法的流程示意图;
图8为一个实施例中数据库操作装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
手机软件开发者在开发过程中,需要保存数据至本地 sqlite 数据库,从而基于本地 sqlite 数据库,提供创建、修改加密数据库、并能够快速实现数据增、删、改、查、回调等功能的功能。如何提高实现上述功能的开发效率,成为开发者关注的重点,本实施例提供一种数据库操作方法,来提高实现上述功能的开发效率。本实施例提供的方法的适用场景包括手机软件开发者的开发场景,示例性地,开发语言可以为Object-C,数据库可以为SQLite,开发平台可以为Mac Operation System,开发工具可以为XCode,运行平台可以为iPhone/iPad Operation System,成品软件可以为基于iOS系统的移动端的 APP 软件,后缀名为.ipa。
现有的技术往往通过FMDB+SQLCipher技术,提供创建、修改加密数据库、并能够快速实现数据增、删、改、查、回调等功能的功能。FMD是世界上最大的代码托管平台Github上一款开源的iOS SQLite数据库管理框架,能够实现在 iOS 系统上 SQLite 数据库的创建、修改和数据的新增、删除、修改查操作。SQLCipher是Github上一款基于FMDB基础上对SQLite数据库进行加解密操作的开源框架。
具体地,上述使用 FMDB+SQLCipher 进行数据在本地 sqlite3 数据库的操作的通常方法可参考下述技术方案,其中包括五个步骤(Step):
Step1、 导入依赖库
导入依赖库 FMDB + SQLCipher,其中包括 3 个类共 6 个文件:FMEncryptDatabase.h、FMEncryptDatabase.m、FMDBEncryptManager.h、FMDBEncryptManager.m、FMEncryptDatabaseQueue.h、MEncryptDatabaseQueue.m。
Step2、创建模型类TPAccount
在现有的FMDB+SQLCipher 的框架中,TPAccount 模型类的父类是基础类NSObject。该模型类TPAccount中可以包括loginName、password、loginTime和userName。
Step3、数据库、数据表的初始化
在现有的FMDB+SQLCipher 的框架中,使用FMDB统一的初始化方法创建数据库,可通过FMEncryptDatabaseQueue datebaseQueueWithPath方法,基于数据库保存的地址和数据库密码创建数据库。
在现有的FMDB+SQLCipher的框架中,通过FMDatabase的方法、使用标准的 SQL 语句创建数据库。
Step4、通过SQL构建增、删、改、查方法
在现有的FMDB+SQLCipher的框架中,通过FMDatabase的方法、使用标准的 SQL 语句构建新增方法、删除方法、修改方法、查询方法。
Step5、使用
完成上述 Step1-4,接下来就可以创建类的实例数据,通过调用自定义的方法,操作数据到本地数据库了。
其中,在现有的FMDB+SQLCipher 的框架中,创建类的实例数据,示例性地,实例数据可以包括创建登录名test@XXX.com、密码XX@123、登录时间20211201、以及用户名TEST。
上述FMDB + SQLCipher的技术中,每增加一个数据库模型,就需要执行创建数据库表的 SQL 脚本,包括设置每一个字段的名称、类型、大小,以及配置数据库模型对应的新增、删除、修改和查询方法等,开发者的工作重复且繁琐。并且,在开发过程中,若遇到数据模型中的属性需要新增、修改、删除等操作时,需要开发者手动调整数据库,并处理数据库中不要的数据,否则就会造成闪退或数据丢失,比较麻烦。当数据库模型在某一地方有新增、删除、修改的操作时,其他页面并不知道,需要发送通知,在每个需要更新的页面上增加通知的订阅,才能及时更新页面,操作重复。
此外,对于数据库中的每一张表来说,都需要设置一个唯一的主键,用于识别查询和修改数据,而FMDB + SQLCipher框架中过多的数据表导致开发者设置主键的工作重复,效率较低;在移动端上运行的应用软件维度,本地存储的基本上都是基础数据类型,应用软件处理过程几乎类似,工作重复,导致应用软件的功耗较高。
另外,对于多用户使用同一移动端的场景来说,需要编写两套数据库管理工具,来管理不同用户的公有数据和私有数据,使用的时候还要区分对应的管理实例来调用,工作重复。
针对上述现有的FMDB + SQLCipher框架存在的问题,本实施例提供一种数据库操作方法来提高开发者实现上述功能的开发效率。
本申请实施例提供的数据库操作方法,可以应用于如图1所示的应用环境中。在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图1所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种数据库操作方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,如图2所示,提供了一种数据库操作方法,以该方法应用于图1中的计算机设备为例进行说明,应用于iOS SQLite 数据库管理框架,包括以下步骤:
步骤201,导入预设的第一配置文件和第二配置文件。
其中,第一配置文件用于配置数据库的数据模型类以及数据处理方法;第二配置文件用于配置数据库操作方法。
可选地,第一配置文件包括数据模型父类以及对应的文件,示例性地,第一配置文件可以命名为TPRecordBase,在当前编译环境下,第一配置文件包括接口文件TPRecordBase.h文件和类文件TPRecordBase.m;第二配置文件包括数据库操作类以及对应的文件,示例性地,第二配置文件可以命名为TPDBManager,在当前编译环境下,第二配置文件包括接口文件TPDBManager.h和类文件TPDBManager.m。
在本实施例中,用户可以基于计算机设备编译环境的显示界面,触发导入第一配置文件和第二配置文件的操作,也即,将第一配置文件和第二配置文件导入至当前数据库框架中。
可选地,将第一配置文件和第二配置文件导入依赖库 FMDB + SQLCipher,包括以下 5 个类共 10 个文件:FMEncryptDatabase.h、FMEncryptDatabase.m、FMDBEncryptManager.h、FMDBEncryptManager.m、FMEncryptDatabaseQueue.h、FMEncryptDatabaseQueue.m、TPDBManager.h、TPDBManager.m、TPRecordBase.h、TPRecordBase.m。
在本实施例中,第一配置文件TPRecordBase中的数据模型类中可以包括多个属性,例如,登录名loginName、密码password、登录时间loginTime、用户名userName等属性。
在本实施例中,在构建数据库中所构建的其他数据模型类需要继承第一配置文件TPRecordBase。第一配置文件TPRecordBase会自动识别当前类的所有属性,然后转换后将数据变更至数据库。继承第一配置文件TPRecordBase,便可直接使用所定义的属性。
在本实施例中,由于第一配置文件TPRecordBase 对以下的类型进行了封装,基于此,对构建数据库中所构建的其他数据模型类的属性类型做了限定,属性类型可以包括下表1所示。
表1
在第一配置文件TPRecordBase中,将第二配置文件TPDBManager 对数据库的操作封装为一个父类,便于后续构建数据库或者构建数据库操作的子类继承并快速拥有操作数据库表的能力。
可选地,第一配置文件对应的接口文件TPRecordBase.h可包括针对于构建数据库或者构建数据库操作的方法接口,例如,数据库数据新增接口、数据库数据删除接口、数据库数据查询接口、数据库数据类型转换接口等,示例性地,接口文件TPRecordBase.h可包括新增、删除、查询、转换等方法接口。可选地,接口文件TPRecordBase.h中定义的数据库的新增、修改、删除、查询均通过调用第二配置文件中定义的操作方法来实现。接口文件TPRecordBase.h中定义的属性类型转换方法getTransformDictionary,是在保存数据至本地数据库前,对数据的属性进行转换的方法。
在本实施例中,第二配置文件TPDBManager用于定义对数据库、表的管理,以及对数据的新增、删除、修改、查询及回调方法。可选地,第二配置文件中的接口文件TPDBManager.h可以包括定义回调中数据操作的类型、block,及注册和取消注册回调的接口,公有、私有两套数据库的设置接口,以及初始化数据库、数据库表的接口。
第二配置文件中的类文件TPDBManager.m中包括针对于数据库操作、数据库回调操作、数据库数据操作、以及公有私有数据库的sql语句,示例性地,第二配置文件的类文件TPDBManager.m中,具体的定义数据库操作的方法,对数据库新增、修改、删除、查询等操作方法,对数据库的回调方法,以及公有数据库、私有数据库的定义方法。
步骤202,在接收到用户的数据库构建操作后,利用第二配置文件和数据库配置操作中携带的数据库参数进行数据库初始化处理,得到初始化数据库。
在本实施例中,在将上述第一配置文件和第二配置文件导入当前编译框架中FMDB+ SQLCipher,便可通过继承第一配置文件和第二配置文件中定义的接口、定位的方法以及设定的数据模型类进行数据库的构建和配置。
示例性地,第二配置文件TPDBManager中提供了数据库、数据表初始化的方法,示例性地,通过调用configWithDBDirectory 在数据库保存的地址,根据名称和密码,创建加密的SQLite数据库,需要说明的是,数据库只需要初始化一次。
其中,通过调用registerClass 方法,根据数据模型子类TPAccount 里属性的属性值,自动创建同名数据库表TPAccount,并按类的属性创建一一对应的字段,需要说明的是,每个不同的模型类添加一行初始化即可。
步骤203,在接收到数据编辑操作后,利用第一配置文件和第二配置文件对初始化数据库进行数据操作。
在本实施例中,在创建好数据库中之后,计算机设备可以基于接收到的数据编辑操作,调用第一配置文件和第二配置文件中定义的相应的数据操作方法实现对数据库的数据操作。示例性地,数据操作包括用户触发或自动触发的数据新增、修改、删除以及查询,以及计算机设备监听到的数据回调操作等。
上述数据库操作方法中,应用于iOS SQLite数据库管理框架中,计算机设备导入预设的第一配置文件和第二配置文件,在接收到用户的数据库构建操作后,利用第二配置文件和数据库配置操作中携带的数据库参数进行数据库初始化处理,得到初始化数据库,在接收到数据编辑操作后,利用第一配置文件和第二配置文件对初始化数据库进行数据操作。在本方案中,将用于配置数据库的数据模型类以及数据处理方法的第一配置文件、以及用于配置数据库操作方法的第二配置文件导入iOS SQLite数据库管理框架中,可以通过继承并调用第一配置文件、第二配置文件中所提供的方法实现数据库的构建以及其他操作,不需要再进行重复的代码编译工作,提高构建数据库以及数据操作的效率。
第一配置文件中可以定义数据模型类,以便于各子类继承其属性类型。在其中一个可选的实施例中,如图3所示,第一配置文件包括数据库的数据模型父类;利用第二配置文件和数据库配置操作中携带的数据库参数进行数据库初始化处理,得到初始化数据库,包括:
步骤301,获取数据库的属性参数。
在本实施例中,第一配置文件中的数据模型父类TPRecordBase可以通过定义的方法,通过自带的运行时工具runtime.h中的class_copyPropertyList()方法,获得构建数据库的类的所有属性,并通过其中的property_getName()方法,获得指定属性的名称。
在本实施例中,通过上述第一配置文件中的数据模型父类TPRecordBase所定义的方法,可以获得构建数据库所需要的数据模型类的所有属性名称,示例性地,属性名称可以包括loginName、password、loginTime、userName。第一配置文件中的数据模型父类TPRecordBase可以获取属性的名称、类型以及属性值。可选地,还可以获取属性的属性值,计算机设备可以通过KVC的方式获得属性的值。
步骤302,基于属性参数以及数据模型父类,执行数据模型父类的继承操作,以得到数据模型子类。
在本实施例中,在识别到上述属性参数之后,通过继承的方式,创建数据模型父类TPRecordBase 的数据模型子类TPAccount,从而数据模型子TPAccount可以使用所有在数据模型父类TPRecrdBase 里已经定义好的属性和方法。
可选地,数据模型子类TPAccount调用了数据模型父类TPRecrdBase中的loginName、password、loginTime、userName,所有对当前TPAccount 类的属性loginName、password、loginTime、userName的操作,都可以通过父类 TPRecordBase来完成,不需要添加额外的方法。
步骤303,基于数据模型子类、第二配置文件和数据库参数进行数据库初始化处理,得到初始化数据库。
在本实施例中,基于第二配置文TPDBManager中的提供的configWithDBDirectory方法创建数据库,可选地,第二配置文件TPDBManager中通过FMEncryptDatabaseQueue 在指定文件夹创建加密数据库,或打开已创建好的加密数据库。
通过获得数据模型类所有属性的名称、类型来组装create SQL,再通过FMDB中的executeUpdate方法执行SQL的方式实现。示例性地,组装create SQL 的内容还可以包括定义唯一主键的方法。例如,定义唯一主键是id,id 是每个数据库表里都有的自增字段,对应的是数据模型父类TPRecordBase中类型为NSInteger、名称为 id 的属性。
可选地,在初始化数据库之后,还可以通过调用第二配置文件 TPDBManager,检查创建或打开数据库操作是否正常,可选地,可以通过查TPDBManager的属性 queue 是否能够成功初始化,若能,则表示数据库状态是正常的。进一步地,还可以通过FMDB中FMDatabase类,判断数据库中表是否存在。
在本实施例中,计算机设备可以基于数据模型父类中定义的属性,构建数据模型子类,并基于数据模型子类初始化数据库,数据模型父类中定义的属性,继承并使用父类中的方法,不需要在各个子类中编译方法,减少了开发工作量,提高了开发效率。且,建立数据库模型对应的类时,不用关心类的属性是如何处理的,只需要将属性配置为基本数据类型即可,操作简便。在已经运行的 app 里增加新的字段,直接新增即可;不要的字段,也可以直接移除;包括对字段的名称不满意,也可以马上调整,增加对应的字段,保留旧字段的数据,同时兼容程序不闪退,非常方便。
进一步地,在其中一个可选的实施例中,如图4所示,该方法还包括:
步骤401,利用数据模型父类中的属性识别方法,确定数据模型子类中所有属性的名称、类型和属性值。
可选地,第一配置文件中的数据模型父类TPRecordBase可以通过定义的方法,通过自带的运行时工具runtime.h中的class_copyPropertyList()方法,获得构建数据库的类的所有属性,并通过其中的property_getName()方法,获得指定属性的名称。
可选地,基于第一配置文件中的数据模型父类 TPRecordBase还可以识别属性的类型。可选地,可以通过自带的运行时工具runtime.h中的 class_getProperty() 和property_getAttributes()方法,可以获得各个属性在运行时中的类型。通过property_getAttributes() 获得的属性类型,需要说明的是,属性类型为以字母 T 开头的特殊类型,跟数据模型类中的属性存在如下表2所示的对应关系:
表2
通过以上表,数据模型类中的基础类型都可以通过运行时获得其对应的标识。
可选地,还可以获取属性的属性值,通过自带工具类NSKeyValueCoding.h中的valueForKey:方法即可获得属性的值。
步骤402,根据各属性的名称、类型和属性值,确定构成数据表的至少一个候选属性。
在本实施例中,在获取到数据模型类的各个属性的名称、类型和属性值之后,计算机设备可以用于构建数据表的多个候选属性。
步骤403,根据所有候选属性,构建初始化数据库中的数据表。
可选地,基于数据模型父类中的属性类型,确定数据表中的一个候选属性作为数据表的唯一主键。
在本实施例中,计算机设备基于确定的主键和所有候选属性,构建初始化数据库中的数据表。
在本实施例中,可调用TPDBManager 中的方法创建数据库表,在完成创建数据表之后,还可以对检查表aClass是否存在,示例性地,调用FMDB中 FMDatabase 类的方法判断表是否存在。可选地,还可以查询数据表中所有字段、类型。进一步地,基于构建的数据库表,根据类属性类型与数据库表的字段类型的映射关系,生成创建数据库表的SQL语句。
在本实施例中,基于第一配置文件中的数据模型父类所提供的识别方法可以对数据模型子类中的所有属性进行识别,并根据识别到的属性名称、类型以及属性值初始化数据表,从而实现数据表的构建操作。
在构建数据库之后,可以基于第一配置文件和第二配置文件进行数据库的操作。在其中一个可选的实施例中,如图5所示,在接收到数据编辑操作后,利用第一配置文件和第二配置文件对初始化数据库进行数据操作,包括:
步骤501,在接收到数据编辑操作后,获取数据编辑操作携带的所有属性。
在本实施例中,数据编辑操作包括数据增加、修改、删除、查询等操作,该数据编辑操作中往往携带了进行数据库操作时的所有属性。所有属性可以为登录名、密码、用户名等任意一种属性或多种属性。
步骤502,利用第一配置文件中的数据模型父类,确定所有属性的属性名称和属性类型。
在本实施例中,计算机设备在接收到所有属性之后,可以基于第一配置文件中的数据模型父类对所有属性进行属性识别,确定该属性的属性名称和属性值等参数,可参考步骤401所提供的识别方法来确定。
步骤503,根据所有属性的属性名称和属性类型,确定所有属性的数据格式。
在本实施例中,计算机设备在接收到所有属性之后,可以基于第一配置文件中的数据模型父类对所有属性进行属性识别,确定该属性的属性类型,可参考步骤401所提供的识别方法来确定。
步骤504,在所有属性的数据格式与初始化数据库的数据格式不一致的情况下,对所有属性进行转换处理,得到转换处理后的目标属性。
在本实施例中,若属性类型与数据库的数据格式不一致,则计算机设备根据上述表2的对应关系,对所有属性的数据格式进行格式转换,可选地,可以按照表3中给出的规则转换为数据库中的类型。
表3
步骤505,基于第二配置文件中的数据库操作方法和目标属性,对初始化数据库进行数据操作。
在本实施例中,计算机设备在对所有属性进行类型转换之后,基于类型转换之后的目标属性,对初始化数据库进行数据操作。
可选地,在数据编辑操作包括数据增加操作的情况下,数据库操作方法包括数据写入方法;基于第二配置文件中的数据库操作方法和目标属性,对初始化数据库进行数据操作,包括:
利用数据写入方法将目标属性写入至初始化数据库的目标数据表中。
在本实施例中,计算机设备可以基于目标数据表以及目标属性,构建生成新增字段的 SQL。
在本实施例中,通过 FMDB中的 executeUpdate:withParameterDictionary: 方法新增数据。同时,基于上述insert SQL中的字段 key 与值 value 组成的 NSDictionary数据。通过 KVC 方式,获得对应的字段 key 与值 value 组成的 NSDictionary。
在新增数据的场景下,存入数据库时的数据要做一下转换,包括以下几种情况:
(1)若数据模型类的属性类型是 NSDate,须转换成时间戳后保存。
(2)若数据模型类的属性类型是 NSData、NSMutableData,须转换成字符串后保存。
(3)若数据模型类的属性类型是 NSArray、NSMutableArray、NSDictionary、NSMutableDictionary,须转换成字符串后保存。
(4)TPRecordBase 属性支持的其他类型,不需要转换就可保存。
在本实施例中,基于上述方法实现数据库的数据增加,通过几种简单的类型,就可以存储绝大部的基础数据类型,方便快捷。
可选地,在数据编辑操作包括数据删除操作的情况下,数据库操作方法包括数据删除方法;基于第二配置文件中的数据库操作方法和目标属性,对初始化数据库进行数据操作,包括:
利用数据删除方法从初始化数据库的目标数据表中删除目标属性。
在本实施例中,目标属性可以为参数ID,计算机设备可以根据参数ID生成删除数据的SQL语句。
在本实施例中,计算机设备基于上述删除数据的SQL语句与第二配置文件中的删除数据方法,实现数据库目标数据表中目标属性的删除。
在本实施例中,基于上述方法实现数据库的数据删除,方便快捷。
可选地,在数据编辑操作包括数据修改操作的情况下,数据库操作方法包括数据修改方法;基于第二配置文件中的数据库操作方法和目标属性,对初始化数据库进行数据操作,包括:
利用数据修改方法修改初始化数据库的目标数据表中目标属性。
在本实施例中,与增加数据操作类似的,在拼接SQL语句时,拼接的是update SQL语句。同样地,对于数据模型类属性的不同类型,均需要做转换才能存入数据库,可参考增加数据实施例所提供的转换方法。
在本实施例中,基于上述方法实现数据库的数据修改,通过几种简单的类型,就可以存储绝大部的基础数据类型,方便快捷。
可选地,在数据编辑操作包括数据查询操作的情况下,数据库操作方法包括数据查询方法;基于第二配置文件中的数据库操作方法和目标属性,对初始化数据库进行数据操作,包括:
利用数据查询方法从初始化数据库的目标数据表目标数据表中获取目标属性。
在本实施例中,拼接的是查询数据的SQL语句,select SQL的基本格式如下:
select*from表名where字段名称1=字段值1 and 字段名称2=字段值2;第一配置文件TPRecordBase的子类调用TPRecordBase的方法,将查询的字段名称放到 keys 数组中,将字段的值放在 values 数组中,由方法自己拼接成查询语句,返回查询结果。
可选地,通过 select 语句查询的结果,在组装成数据模型类的实例时,操作对读取的数据进行反向数据类型转换操作,示例性地,包括以下几种类型。
(1)若数据模型类的属性类型是NSDate,从数据库中读取到的时间戳,须按以下方式转换成NSDate类型后才能给实例对象赋值。通过NSDate的方法,将数组库中的浮点类型,转换成NSDate对象。
(2)若数据模型类的属性类型是NSData、NSMutableData,从数据库中读取到的字符串,须转换成NSData、NSMutableData类型后才能给实例对象赋值。通过NSString的方法,将字符串转换成utf8编码的NSData对象。
(3)若数据模型类的属性类型是NSArray、NSMutableArray、NSDictionary、NSMutableDictionary,从数据库中读取到的字符串,须转换NSArray、NSMutableArray、NSDictionary、NSMutableDictionary类型后才能给实例对象赋值。通过NSString的方法,将字符串转换成utf8编码的NSData对象。通过 NSJSONSerialization的方法,转换成NSArray、NSMutableArray、NSDictionary、NSMutableDictionary对象。
(4)TPRecordBase属性支持的其他类型,从数据库中读取后不需要转换就可给实例对象赋值。
在本实施例中,计算机设备可以通过FMDB中的executeQuery: 方法,执行上述select SQL,将查询的结果转换为数据模型类的数组。
上述方法中的输入参数为数据模型子类的class 对象,通过这个值,基于class对象确定要查找的数据表,通过组装select SQL,将结果按照数据模型子类的实例通过setValuesForKeysWithTransformDictionary方法进行赋值,也即根据结果给数据模型类的属性实例进行赋值。可选地,setValuesForKeysWithTransformDictionary 方法在查到结果后,根据属性的不同,将部分数据库里的数据类型,还原为数据模型类里定义的类型,用于进行数据查询展示。
在本实施例中,基于上述方法实现数据库的数据查询,方便快捷。
在多个用户使用同一个数据库的情况下,为了不同用户的数据安全性,可以设定私有数据库或共享数据库,在其中一个可选的实施例中,第二配置文件中还包括权限设置方法;该方法还包括:
接收数据库权限配置操作,利用权限设置方法和数据库权限配置操作中携带的权限标识,配置初始化数据库的访问权限;权限标识用于表示初始化数据库为私有数据库或共享数据库。
在本实施例中,第二配置文件中还包括权限设置方法,示例性地,用于创建公有数据库表的定义可以表示为:(instancetype)publicDB;用于创建私有数据库表的定义可以表示为:(instancetype)privateDB。这两种实例方法都是通过以下相同的方法、在合适的位置进行初始化。
在数据写入的操作过程中,将某个数据模型类放到指定的数据库中,使用对应的数据库注册数据模型类即可。
注册的过程也是创建数据库表的过程,根据数据模型类的属性创建完数据库表后,会将当前数据模型类的名称自动加到这个私有或公共实例下的这个属性中。
当某个数据模型类需要对数据进行新增、删除、修改或查询操作时,只需要先去实例privateDB或publicDB的属性tables中查找是否存在即可。若存在,则使用当前的实例去执行数据库的相关操作。
计算机设备通过 TPDBManager 里的方法实现查询,无须开发者手动操作。
在本实施例中,一方面是为了保证数据的安全,私密的数据只在私人数据库表里,其他人登录后无论如何都不会查到;另一方面以是为了节省空间,有些数据不那么私密,可以共享,节省空间。
为了更及时地获取数据库的更新状态,在其中一个可选的实施例中,如图6所示,第二配置文件还包括数据回调方法;该方法还包括:
步骤601,在监听到对初始化数据库产生数据操作的情况下,利用所数据回调方法,获取初始化数据库的操作结果。
在本实施例中,计算机设备可以设定对某个页面的数据模型类的新增、删除、修改操作进行监听,来监听对初始化数据库的数据操作,也即,监听某个页面的变更,示例性地,可调用TPDBManager方法用于注册监听和取消注册监听。
步骤602,将初始化数据库的操作结果返回至目标地址;目标地址为注册回调方法的地址。
在本实施例中,调用registerObserver注册监听时,实质就是利用block 机制,将一组操作封装成参数传入后储存起来,在需要的时候调用。
将一组不同操作下更新界面的操作,以block的方式作为参数传递进去,返回至注册回调方法的地址。第二配置文件TPDBManager 接收到参数后,会将其保存至以下数组属性中,接收到不同数据模型类的多个注册 block 后,会按预设格式存储。
TPDBManager每次执行某个数据模型类的新增、删除、修改操作时,就在其属性blocks 里找到该数据模型类所有的block,传入当前操作的类型及操作的数据,将这些block 都执行一遍。
当某个类或页面不再需要监听数据模型类的数据更改时,调用unregisterObserver方法取消注册。TPDBManager会在其属性blocks中按数据模型类名称、block名称找到对应的 block,将其移除。
在本实施例中,通过以上方法的定义可以实现某一界面的数据模型的变更监听,以及数据回调操作,数据模型每次新增、删除、修改操作时,不用发送消息通知页面更新。页面只需要在需要的时候注册回调,就能收到所有新增、删除、修改操作的回调,执行对应的更新逻辑,不需要的时候移除,操作更简便。
为了更好的说明上述方法,如图7所示,本实施例提供一种数据库操作方法,具体包括:
S101、导入预设的第一配置文件和第二配置文件;
S102、在接收到用户的数据库构建操作后,获取数据库的属性参数;
S103、基于属性参数以及第一配置文件中的数据模型父类,执行数据模型父类的继承操作,以得到数据模型子类;
S104、基于数据模型子类、第二配置文件和数据库参数进行数据库初始化处理,得到初始化数据库;
S105、利用数据模型父类中的属性识别方法,确定数据模型子类中所有属性的名称、类型和属性值;
S106、根据各属性的名称、类型和属性值,确定构成数据表的至少一个候选属性;
S107、根据所有候选属性,构建初始化数据库中的数据表;
S108、基于数据模型父类中的属性类型,确定数据表中的一个候选属性作为数据表的唯一主键;
S109、在接收到数据编辑操作后,获取数据编辑操作携带的所有属性;
S110、利用第一配置文件中的数据模型父类,确定所有属性的属性名称和属性类型;
S111、根据所有属性的属性名称和属性类型,确定所有属性的数据格式;
S112、在所有属性的数据格式与初始化数据库的数据格式不一致的情况下,对所有属性进行转换处理,得到转换处理后的目标属性;
S113、基于第二配置文件中的数据库操作方法和目标属性,对初始化数据库进行数据操作。
在本实施例中,将用于配置数据库的数据模型类以及数据处理方法的第一配置文件、以及用于配置数据库操作方法的第二配置文件导入iOS SQLite 数据库管理框架中,可以通过继承并调用第一配置文件、第二配置文件中所提供的方法实现数据库的构建以及其他操作,不需要再进行重复的代码编译工作,提高构建数据库以及数据操作的效率。
上述实施例提供的数据库操作方法,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据库操作方法的数据库操作装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据库操作装置实施例中的具体限定可以参见上文中对于数据库操作方法的限定,在此不再赘述。
在一个实施例中,如图8所示,提供了一种数据库操作装置,包括:
导入模块01,用于导入预设的第一配置文件和第二配置文件;第一配置文件用于配置数据库的数据模型类以及数据处理方法;第二配置文件用于配置数据库操作方法;
初始化模块02,用于在接收到用户的数据库构建操作后,利用第二配置文件和数据库配置操作中携带的数据库参数进行数据库初始化处理,得到初始化数据库;
操作模块03,用于在接收到数据编辑操作后,利用第一配置文件和第二配置文件对初始化数据库进行数据操作。
在其中一个可选的实施例中,第一配置文件包括数据库的数据模型父类;初始化模块02,用于获取数据库的属性参数;基于属性参数以及数据模型父类,执行数据模型父类的继承操作,以得到数据模型子类;基于数据模型子类、第二配置文件和数据库参数进行数据库初始化处理,得到初始化数据库。
在其中一个可选的实施例中,初始化模块02,还用于利用数据模型父类中的属性识别方法,确定数据模型子类中所有属性的名称、类型和属性值;根据各属性的名称、类型和属性值,确定构成数据表的至少一个候选属性;根据所有候选属性,构建初始化数据库中的数据表。
在其中一个可选的实施例中,初始化模块02,还用于基于数据模型父类中的属性类型,确定数据表中的一个候选属性作为数据表的唯一主键。
在其中一个可选的实施例中,操作模块03,用于在接收到数据编辑操作后,获取数据编辑操作携带的所有属性;利用第一配置文件中的数据模型父类,确定所有属性的属性名称和属性类型;根据所有属性的属性名称和属性类型,确定所有属性的数据格式; 在所有属性的数据格式与初始化数据库的数据格式不一致的情况下,对所有属性进行转换处理,得到转换处理后的目标属性;基于第二配置文件中的数据库操作方法和目标属性,对初始化数据库进行数据操作。
在其中一个可选的实施例中,数据编辑操作包括数据增加操作,数据库操作方法包括数据写入方法;操作模块03,用于利用数据写入方法将目标属性写入至初始化数据库的目标数据表中。
在其中一个可选的实施例中,数据编辑操作包括数据删除操作,数据库操作方法包括数据删除方法;操作模块03,用于利用数据删除方法从初始化数据库的目标数据表中删除目标属性。
在其中一个可选的实施例中,数据编辑操作包括数据修改操作,数据库操作方法包括数据修改方法;操作模块03,用于利用数据修改方法修改初始化数据库的目标数据表中目标属性。
在其中一个可选的实施例中,数据编辑操作包括数据查询操作,数据库操作方法包括数据查询方法;操作模块03,用于利用数据查询方法从初始化数据库的目标数据表中获取目标属性。
在其中一个可选的实施例中,第二配置文件中还包括权限设置方法;操作模块03,还用于接收数据库权限配置操作,利用权限设置方法和数据库权限配置操作中携带的权限标识,配置初始化数据库的访问权限;权限标识用于表示初始化数据库为私有数据库或共享数据库。
在其中一个可选的实施例中,第二配置文件还包括数据回调方法;操作模块03,还用于在监听到对初始化数据库产生数据操作的情况下,利用所数据回调方法,获取初始化数据库的操作结果;将初始化数据库的操作结果返回至目标地址;目标地址为注册回调方法的地址。
上述数据库操作装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述数据库操作方法。
上述实施例提供的计算机设备,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述数据库操作方法。
上述实施例提供的计算机可读存储介质,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述数据库操作方法。
上述实施例提供的计算机程序产品,其实现原理和技术效果与上述方法实施例类似,在此不再赘述。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据库操作方法,其特征在于,应用于iOS SQLite 数据库管理框架;所述方法包括:
导入预设的第一配置文件和第二配置文件;所述第一配置文件用于配置数据库的数据模型类以及数据处理方法;所述第二配置文件用于配置数据库操作方法,所述第二配置文件具体用于定义对数据库、表的管理,以及对数据的新增、删除、修改、查询及回调方法;
在所述第一配置文件中,将第二配置文件对数据库的操作封装为一个父类,以使构建数据库或者构建数据库操作的子类继承并快速拥有操作数据库表的能力;
在接收到用户的数据库构建操作后,利用所述第二配置文件和所述数据库配置操作中携带的数据库参数进行数据库初始化处理,得到初始化数据库,所述第二配置文件中提供了数据库、数据表初始化的方法;
在接收到数据编辑操作后,利用所述第一配置文件和所述第二配置文件对所述初始化数据库进行数据操作;
利用所述数据模型父类中的属性识别方法,确定所述数据模型子类中所有属性的名称、类型和属性值;
根据各所述属性的名称、类型和属性值,确定构成所述数据表的至少一个候选属性;
根据所述所有候选属性,构建所述初始化数据库中的数据表;
基于所述数据模型父类中的属性类型,确定所述数据表中的一个候选属性作为所述数据表的唯一主键;
其中,所述第一配置文件包括数据库的数据模型父类;所述利用所述第二配置文件和所述数据库配置操作中携带的数据库参数进行数据库初始化处理,得到初始化数据库,包括:获取数据库的属性参数,其中,所述第一配置文件中的所述数据模型父类用于获取属性的名称、类型以及属性值;基于所述属性参数以及所述数据模型父类,执行所述数据模型父类的继承操作,以得到数据模型子类;基于所述数据模型子类、所述第二配置文件和所述数据库参数进行数据库初始化处理,得到所述初始化数据库;
其中,在接收到数据编辑操作后,利用所述第一配置文件和所述第二配置文件对所述初始化数据库进行数据操作,包括:
在接收到所述数据编辑操作后,获取所述数据编辑操作携带的所有属性,所述所有属性为登录名、密码、用户名中的任意一种属性或多种属性;
利用所述第一配置文件中的数据模型父类,确定所述所有属性的属性名称和属性类型;
根据所述所有属性的属性名称和属性类型,确定所述所有属性的数据格式;
在所述所有属性的数据格式与所述初始化数据库的数据格式不一致的情况下,对所述所有属性进行转换处理,得到转换处理后的目标属性;
基于所述第二配置文件中的数据库操作方法和所述目标属性,对所述初始化数据库进行数据操作;
其中,所述第二配置文件中还包括权限设置方法;所述方法还包括:
接收数据库权限配置操作,利用所述权限设置方法和所述数据库权限配置操作中携带的权限标识,配置所述初始化数据库的访问权限;所述权限标识用于表示所述初始化数据库为私有数据库或共享数据库;
其中,所述第二配置文件还包括数据回调方法;所述方法还包括:
在监听到对所述初始化数据库产生数据操作的情况下,利用所数据回调方法,获取所述初始化数据库的操作结果;
将所述初始化数据库的操作结果返回至目标地址;所述目标地址为注册所述回调方法的地址。
2.根据权利要求1所述的方法,其特征在于,所述数据编辑操作包括数据增加操作,所述数据库操作方法包括数据写入方法;所述基于所述第二配置文件中的数据库操作方法和所述目标属性,对所述初始化数据库进行数据操作,包括:
利用所述数据写入方法将所述目标属性写入至所述初始化数据库的目标数据表中。
3.根据权利要求1所述的方法,其特征在于,所述数据编辑操作包括数据删除操作,所述数据库操作方法包括数据删除方法;所述基于所述第二配置文件中的数据库操作方法和所述目标属性,对所述初始化数据库进行数据操作,包括:
利用所述数据删除方法从所述初始化数据库的目标数据表中删除所述目标属性。
4.根据权利要求1所述的方法,其特征在于,所述数据编辑操作包括数据修改操作,所述数据库操作方法包括数据修改方法;所述基于所述第二配置文件中的数据库操作方法和所述目标属性,对所述初始化数据库进行数据操作,包括:
利用所述数据修改方法修改所述初始化数据库的目标数据表中的所述目标属性。
5.根据权利要求1所述的方法,其特征在于,所述数据编辑操作包括数据查询操作,所述数据库操作方法包括数据查询方法;所述基于所述第二配置文件中的数据库操作方法和所述目标属性,对所述初始化数据库进行数据操作,包括:
利用所述数据查询方法从所述初始化数据库的目标数据表中获取所述目标属性。
6.一种数据库操作装置,其特征在于,所述装置包括:
导入模块,用于导入预设的第一配置文件和第二配置文件;所述第一配置文件用于配置数据库的数据模型类以及数据处理方法;所述第二配置文件用于配置数据库操作方法,所述第二配置文件具体用于定义对数据库、表的管理,以及对数据的新增、删除、修改、查询及回调方法;在所述第一配置文件中,将第二配置文件对数据库的操作封装为一个父类,以使构建数据库或者构建数据库操作的子类继承并快速拥有操作数据库表的能力;
初始化模块,用于在接收到用户的数据库构建操作后,利用所述第二配置文件和所述数据库配置操作中携带的数据库参数进行数据库初始化处理,得到初始化数据库,所述第二配置文件中提供了数据库、数据表初始化的方法;
操作模块,用于在接收到数据编辑操作后,利用所述第一配置文件和所述第二配置文件对所述初始化数据库进行数据操作;
其中,所述初始化模块还用于利用所述数据模型父类中的属性识别方法,确定所述数据模型子类中所有属性的名称、类型和属性值;根据各所述属性的名称、类型和属性值,确定构成所述数据表的至少一个候选属性;根据所述所有候选属性,构建所述初始化数据库中的数据表;
其中,所述初始化模块还用于基于所述数据模型父类中的属性类型,确定所述数据表中的一个候选属性作为所述数据表的唯一主键;
其中,所述第一配置文件包括数据库的数据模型父类;所述初始化模块,用于获取数据库的属性参数,其中,所述第一配置文件中的所述数据模型父类用于获取属性的名称、类型以及属性值;基于所述属性参数以及所述数据模型父类,执行所述数据模型父类的继承操作,以得到数据模型子类;基于所述数据模型子类、所述第二配置文件和所述数据库参数进行数据库初始化处理,得到所述初始化数据库;
其中,所述操作模块具体用于在接收到所述数据编辑操作后,获取所述数据编辑操作携带的所有属性,所述所有属性为登录名、密码、用户名中的任意一种属性或多种属性;利用所述第一配置文件中的数据模型父类,确定所述所有属性的属性名称和属性类型;根据所述所有属性的属性名称和属性类型,确定所述所有属性的数据格式;在所述所有属性的数据格式与所述初始化数据库的数据格式不一致的情况下,对所述所有属性进行转换处理,得到转换处理后的目标属性;基于所述第二配置文件中的数据库操作方法和所述目标属性,对所述初始化数据库进行数据操作;
其中,第二配置文件中还包括权限设置方法;所述操作模块还具体用于接收数据库权限配置操作,利用权限设置方法和数据库权限配置操作中携带的权限标识,配置初始化数据库的访问权限;权限标识用于表示初始化数据库为私有数据库或共享数据库;
其中,第二配置文件还包括数据回调方法;所述操作模块还具体用于在监听到对初始化数据库产生数据操作的情况下,利用数据回调方法,获取初始化数据库的操作结果;将初始化数据库的操作结果返回至目标地址;目标地址为注册回调方法的地址。
7.根据权利要求6所述的数据库操作装置,其特征在于,所述操作模块用于利用数据写入方法将所述目标属性写入至所述初始化数据库的目标数据表中。
8.根据权利要求6所述的数据库操作装置,其特征在于,所述操作模块用于利用数据删除方法从所述初始化数据库的目标数据表中删除目标属性。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211120122.5A CN115203176B (zh) | 2022-09-15 | 2022-09-15 | 数据库操作方法、装置、设备、存储介质和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211120122.5A CN115203176B (zh) | 2022-09-15 | 2022-09-15 | 数据库操作方法、装置、设备、存储介质和程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115203176A CN115203176A (zh) | 2022-10-18 |
CN115203176B true CN115203176B (zh) | 2023-03-07 |
Family
ID=83571862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211120122.5A Active CN115203176B (zh) | 2022-09-15 | 2022-09-15 | 数据库操作方法、装置、设备、存储介质和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115203176B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101860458A (zh) * | 2009-04-09 | 2010-10-13 | 大唐移动通信设备有限公司 | 一种数据配置方法、设备及系统 |
CN102156700A (zh) * | 2010-02-12 | 2011-08-17 | 华为技术有限公司 | 数据库的访问方法、装置及系统 |
CN102201013A (zh) * | 2011-06-24 | 2011-09-28 | 厦门雅迅网络股份有限公司 | 一种基于内存数据库的车辆状态管理方法 |
CN107273425A (zh) * | 2017-05-18 | 2017-10-20 | 武汉普利商用机器有限公司 | 一种基于orm框架的数据库开发方法及装置 |
CN107818146A (zh) * | 2017-10-19 | 2018-03-20 | 上海斐讯数据通信技术有限公司 | 一种数据库架构方法和框架 |
CN112905624A (zh) * | 2021-02-26 | 2021-06-04 | 浪潮通用软件有限公司 | 一种低代码开发平台的数据库扩展方法及设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098248B (zh) * | 2006-06-26 | 2010-09-08 | 腾讯科技(深圳)有限公司 | 一种基于配置描述文件实现通用网络管理的方法及系统 |
CN101094144A (zh) * | 2007-07-26 | 2007-12-26 | 华为技术有限公司 | 无线接入网的数据配置方法和系统 |
CN101826018B (zh) * | 2010-05-20 | 2014-05-14 | 瑞斯康达科技发展股份有限公司 | 一种网元管理系统界面交互开发系统及方法 |
US8990770B2 (en) * | 2011-05-25 | 2015-03-24 | Honeywell International Inc. | Systems and methods to configure condition based health maintenance systems |
CN102254029B (zh) * | 2011-07-29 | 2013-06-19 | 株洲南车时代电气股份有限公司 | 一种基于视图的数据访问系统及其方法 |
CN103455335A (zh) * | 2013-09-12 | 2013-12-18 | 苏州灵巴巴网络科技有限公司 | 一种多级分类的Web实现方法 |
CN103699848A (zh) * | 2013-12-23 | 2014-04-02 | 北京哈工大计算机网络与信息安全技术研究中心 | 一种数据库连接信息的加密及解密方法 |
US11442919B2 (en) * | 2015-07-31 | 2022-09-13 | Accenture Global Services Limited | Data reliability analysis |
CN105303326A (zh) * | 2015-11-13 | 2016-02-03 | 上海交通大学 | 基于资源元模型的产品全生命周期信息系统 |
US10705943B2 (en) * | 2017-09-08 | 2020-07-07 | Devfactory Innovations Fz-Llc | Automating identification of test cases for library suggestion models |
US10474455B2 (en) * | 2017-09-08 | 2019-11-12 | Devfactory Fz-Llc | Automating identification of code snippets for library suggestion models |
CN113504904A (zh) * | 2021-07-26 | 2021-10-15 | 中国平安人寿保险股份有限公司 | 用户定义函数实现方法、装置、计算机设备和存储介质 |
CN114138577B (zh) * | 2021-11-29 | 2024-01-19 | 苏州浪潮智能科技有限公司 | 一种tpc-h测试方法、装置、计算机设备及存储介质 |
CN114238487A (zh) * | 2021-12-27 | 2022-03-25 | 中国建设银行股份有限公司 | 数据库卸数的方法、装置、系统、存储介质及程序产品 |
-
2022
- 2022-09-15 CN CN202211120122.5A patent/CN115203176B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101860458A (zh) * | 2009-04-09 | 2010-10-13 | 大唐移动通信设备有限公司 | 一种数据配置方法、设备及系统 |
CN102156700A (zh) * | 2010-02-12 | 2011-08-17 | 华为技术有限公司 | 数据库的访问方法、装置及系统 |
CN102201013A (zh) * | 2011-06-24 | 2011-09-28 | 厦门雅迅网络股份有限公司 | 一种基于内存数据库的车辆状态管理方法 |
CN107273425A (zh) * | 2017-05-18 | 2017-10-20 | 武汉普利商用机器有限公司 | 一种基于orm框架的数据库开发方法及装置 |
CN107818146A (zh) * | 2017-10-19 | 2018-03-20 | 上海斐讯数据通信技术有限公司 | 一种数据库架构方法和框架 |
CN112905624A (zh) * | 2021-02-26 | 2021-06-04 | 浪潮通用软件有限公司 | 一种低代码开发平台的数据库扩展方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115203176A (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210273972A1 (en) | Dynamic Hierarchical Tagging System and Method | |
TWI748175B (zh) | 資料的處理方法、裝置及設備 | |
KR102310649B1 (ko) | 개인 식별 정보를 제거하기 위한 스크러버 | |
CN111797073B (zh) | 数据库管理方法、电子设备与计算机可读存储介质 | |
CN106886568B8 (zh) | 一种分表方法、装置及电子设备 | |
CN111949529B (zh) | 系统调试方法、装置、计算机设备和存储介质 | |
CN111767144A (zh) | 交易数据的交易路由确定方法、装置、设备及系统 | |
CN104216708A (zh) | 一种数据监控的方法和装置 | |
CN114579109A (zh) | 代码生成方法及装置、电子设备和存储介质 | |
CN115729951B (zh) | 数据查询方法、系统、设备及计算机可读存储介质 | |
CN115203176B (zh) | 数据库操作方法、装置、设备、存储介质和程序产品 | |
CN115658794B (zh) | 数据查询方法、装置、计算机设备和存储介质 | |
CN116738954A (zh) | 报表导出方法、报表模板的配置方法、装置、计算机设备 | |
CN116166851A (zh) | 目录信息查询方法、装置、计算机设备和存储介质 | |
CN114448702B (zh) | 一种基于隐私集合求交的数据加密方法及装置 | |
CN114546410A (zh) | 一种基于设计模式的代码优化方法及相关设备 | |
CN111695124A (zh) | 权限控制方法和装置、存储介质和电子设备 | |
US20130046963A1 (en) | Access to context information in a heterogeneous application environment | |
CN110347333A (zh) | 提高克隆镜像性能的方法、装置、计算机设备及存储介质 | |
CN117112538B (zh) | 数据库操作方法、装置、计算机设备和存储介质 | |
CN114036171B (zh) | 应用数据管理方法、装置、计算机设备和存储介质 | |
CN113722334B (zh) | 数据处理的方法、装置、电子设备及介质 | |
CN111914519B (zh) | 目标对象生成方法及装置、电子设备、存储介质 | |
CN118332027A (zh) | 标识查询方法、装置和计算机设备 | |
CN116974715A (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 |