CN106933828A - 数据插入方法和装置 - Google Patents

数据插入方法和装置 Download PDF

Info

Publication number
CN106933828A
CN106933828A CN201511017255.XA CN201511017255A CN106933828A CN 106933828 A CN106933828 A CN 106933828A CN 201511017255 A CN201511017255 A CN 201511017255A CN 106933828 A CN106933828 A CN 106933828A
Authority
CN
China
Prior art keywords
data
data object
type
processing interface
sqlite databases
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.)
Granted
Application number
CN201511017255.XA
Other languages
English (en)
Other versions
CN106933828B (zh
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.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co 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 Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201511017255.XA priority Critical patent/CN106933828B/zh
Publication of CN106933828A publication Critical patent/CN106933828A/zh
Application granted granted Critical
Publication of CN106933828B publication Critical patent/CN106933828B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/23Updating
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

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

本申请公开了一种数据插入方法和装置。其中,该方法包括:获取待插入数据对象和SQLite数据库的映射关系,其中,待插入数据对象为需要插入SQLite数据库的数据对象;以及调用预设处理接口并通过预设处理接口根据映射关系将待插入数据对象插入至SQLite数据库中,其中,预设处理接口中预先封装了用于将数据插入至SQLite数据库的方法。本申请解决了向SQLite数据库中插入数据时操作较为繁琐的技术问题。

Description

数据插入方法和装置
技术领域
本申请涉及数据库领域,具体而言,涉及一种数据插入方法和装置。
背景技术
SQLite是一种小型轻量级的关系型数据库,所有数据均可以保持在单个的文件中便于传输,用户可以使用各种免费开源的工具打开查看数据,并可以使用其开源的API进行编程操作等,而且其很好的支持关系型数据库的各种基本操作,例如,增加、删除、修改和查询等。所以在数据量较小的情况下,用SQLite来保存数据,然后在需要使用的时候使用T-SQL来直接查询是非常方便的,这也是SQLite比较流行的原因之一。
对于SQLite的操作,特别是使用应用程序(俗称API)操作SQLite数据库,用户应当遵循一些关系型数据库通信的基本步骤,比如,建立数据库连接,创建数据库表,使用标准T-SQL插入数据,使用SELETE语句查询数据等。同时如果用户想在一个数据库中保存多种数据结构的数据,则需要分别对每个数据对象创建数据库表,分别构建TSQL插入语句,然后再在数据库上执行该语句。
SQLite是轻量级的关系型数据库,对其进行的任何操作均需执行一定的固定操作,例如,建立数据库连接,创建数据库表,构建标准T-SQL插入或者查询数据等。这些操作对于系统中偶尔使用还可以接受,但是如果在系统中需要反复执行,将是个非常繁琐的工作。用户需要频繁的指定数据库连接,频繁的创建数据库表,特别是对于不同数据结构的数据,需要手工逐个构建创建数据库表的T-SQL语句。于此可见,SQLite并没有直接支持插入各种数据结构对象,特别是复杂对象的能力。
针对相关技术中向SQLite数据库中插入数据时操作较为繁琐的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种数据插入方法和装置,以解决相关技术中向SQLite数据库中插入数据时操作较为繁琐的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种数据插入方法。该方法包括:获取待插入数据对象和SQLite数据库的映射关系,其中,待插入数据对象为需要插入SQLite数据库的数据对象;以及调用预设处理接口并通过预设处理接口根据映射关系将待插入数据对象插入至SQLite数据库中,其中,预设处理接口中预先封装了用于将数据插入至SQLite数据库的方法。
进一步地,在获取待插入数据对象和SQLite数据库的映射关系之前,该方法还包括:获取属性类,其中,属性类中预先定义了数据映射规则;以及根据属性类向待插入数据对象中添加预设属性,其中,预设属性包含待插入数据对象与SQLite数据库的映射关系,获取待插入数据对象和SQLite数据库的映射关系包括:通过预设处理接口解析带有预设属性的待插入数据对象,得到映射关系。
进一步地,调用预设处理接口并通过预设处理接口根据映射关系将待插入数据对象插入至SQLite数据库中包括:通过预设处理接口判断SQLite数据库中是否存在与待插入数据对象的类型对应的数据表;在通过预设处理接口判断出SQLite数据库中不存在与待插入数据对象的类型对应的数据表时,根据映射关系在SQLite数据库中创建与待插入数据对象的类型对应的数据表;通过预设处理接口从待插入数据对象中获取各个字段的值;以及通过预设处理接口将各个字段的值插入至与待插入数据对象的类型对应的数据表中。
进一步地,在通过预设处理接口判断出SQLite数据库中存在与待插入数据对象的类型对应的数据表时,该方法还包括:通过预设处理接口从待插入数据对象中获取各个字段的值;以及通过预设处理接口根据映射关系将各个字段的值插入至与待插入数据对象的类型对应的数据表中。
进一步地,判断SQLite数据库中是否存在与待插入数据对象的类型对应的数据表包括:判断待插入数据对象的类型是否与封装类实例化的类型相同,其中,封装类为泛型类,封装类中包含预设处理接口;如果判断出待插入数据对象的类型与封装类实例化的类型相同,则确定SQLite数据库中存在与待插入数据对象的类型对应的数据表;以及如果判断出待插入数据对象的类型与封装类实例化的类型不相同,则确定SQLite数据库中不存在与待插入数据对象的类型对应的数据表。
为了实现上述目的,根据本申请的另一方面,提供了一种数据插入装置。该装置包括:第一获取单元,用于建立待插入数据对象和SQLite数据库的映射关系,其中,待插入数据对象为需要插入SQLite数据库的数据对象;以及第一插入单元,用于调用预设处理接口并通过预设处理接口根据映射关系将待插入数据对象插入至SQLite数据库中,其中,预设处理接口中预先封装了用于将数据插入至SQLite数据库的方法。
进一步地,该装置还包括:第二获取单元,用于获取属性类,其中,属性类中预先定义了数据映射规则;以及添加单元,用于根据属性类向待插入数据对象中添加预设属性,其中,预设属性包含待插入数据对象与SQLite数据库的映射关系,第一获取单元包括:解析模块,用于通过预设处理接口解析带有预设属性的待插入数据对象,得到映射关系。
进一步地,第一插入单元包括:判断模块,用于通过预设处理接口判断SQLite数据库中是否存在与待插入数据对象的类型对应的数据表;创建模块,用于在通过预设处理接口判断出SQLite数据库中不存在与待插入数据对象的类型对应的数据表时,根据映射关系在SQLite数据库中创建与待插入数据对象的类型对应的数据表;获取模块,用于通过预设处理接口从待插入数据对象中获取各个字段的值;以及插入模块,用于通过预设处理接口将各个字段的值插入至与待插入数据对象的类型对应的数据表中。
进一步地,在通过预设处理接口判断出SQLite数据库中存在与待插入数据对象的类型对应的数据表时,该装置还包括:第三获取单元,用于通过预设处理接口从待插入数据对象中获取各个字段的值;以及第二插入单元,用于通过预设处理接口根据映射关系将各个字段的值插入至与待插入数据对象的类型对应的数据表中。
进一步地,判断模块包括:判断子模块,用于判断待插入数据对象的类型是否与封装类实例化的类型相同,其中,封装类为泛型类,封装类中包含预设处理接口;第一确定子模块,用于在判断出待插入数据对象的类型与封装类实例化的类型相同时,则确定SQLite数据库中存在与待插入数据对象的类型对应的数据表;以及第二确定子模块,用于在判断出待插入数据对象的类型与封装类实例化的类型不相同时,则确定SQLite数据库中不存在与待插入数据对象的类型对应的数据表。
本申请通过获取待插入数据对象和SQLite数据库的映射关系,其中,待插入数据对象为需要插入SQLite数据库的数据对象;以及调用预设处理接口并通过预设处理接口根据映射关系将待插入数据对象插入至SQLite数据库中,其中,预设处理接口中预先封装了用于将数据插入至SQLite数据库的方法,本申请仅需要建立好待插入数据对象和SQLite数据库的映射关系即可以直接调用预设处理接口实现数据插入,操作简单方面,解决了相关技术中向SQLite数据库中插入数据时操作较为繁琐的问题,进而达到了简化向SQLite数据库中插入数据的操作的效果。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的数据插入方法的流程图;以及
图2是根据本申请实施例的数据插入装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,以下对本申请涉及的一些术语和概念进行说明:
反射技术:面向对象的程序开发语言中利用元数据描述数据类型的一种编程技术。
类:是面向对象的程序开发语言中一种复杂的数据类型,是将不同类型的数据和与这些数据相关的操作封装在一起的集合体。类是对象的抽象,而对象是类的具体实例。
根据本申请实施例,提供了一种数据插入方法。图1是根据本申请实施例的数据插入方法的流程图,如图1所示,该方法包括如下的步骤S102至步骤S104:
步骤S102,获取待插入数据对象和SQLite数据库的映射关系,其中,待插入数据对象为需要插入SQLite数据库的数据对象。
本申请实施例的待插入数据对象可以是任意需要插入至SQLite数据库的数据对象,例如,学生数据对象,其中,学生数据对象通常包含学生的姓名、学号、年龄、出生日期、年级等字段,或是老师数据对象,其中,老师数据对象通过包含姓名、年龄、工号、科目、级别、薪资等字段。
在本申请实施例中,待插入数据对象和SQLite数据库的映射关系包含待插入数据对象与SQLite数据库中数据表的对应关系以及待插入数据对象各个字段与SQLite数据库中数据表各个列的对应关系等,例如,将学生数据对象插入至SQLite数据库中学生表中,并将学生数据对象的ID字段插入至学生表第一列,将学生数据对象的姓名字段插入至学生表第二列,将学生数据对象的年龄字段插入至学生表第三列,上述对应关系即为学生数据对象与SQLite数据库的映射关系。
步骤S104,调用预设处理接口并通过预设处理接口根据映射关系将待插入数据对象插入至SQLite数据库中,其中,预设处理接口中预先封装了用于将数据插入至SQLite数据库的方法。
本申请实施例中的预设处理接口中预先封装了用于将数据插入至SQLite数据库的方法,例如,创建数据表、创建插入数据的T-SQL语句模板以及获取待插入数据对象的各个字段值并插入到数据表等方法。
本申请实施例可以直接调用预设处理接口往SQLite数据库写入待插入数据对象,写完即可关闭SQLite数据库,并保存结果以用于后继分析、传输等,相比于现有技术中每次执行数据插入均需要执行数据库连接、创建数据表、创建T-SQL插入语句等一系列操作,操作更为简便。
本申请通过建立待插入数据对象和SQLite数据库的映射关系,其中,待插入数据对象为需要插入SQLite数据库的数据对象;以及调用预设处理接口并通过预设处理接口根据映射关系将待插入数据对象插入至SQLite数据库中,其中,预设处理接口中预先封装了用于将数据插入至SQLite数据库的方法,本申请仅需要建立好待插入数据对象和SQLite数据库的映射关系即可以直接调用预设处理接口实现数据插入,操作简单方面,解决了相关技术中向SQLite数据库中插入数据时操作较为繁琐的问题,进而达到了简化向SQLite数据库中插入数据的操作的效果。
优选地,为了便于快速获取待插入数据对象和SQLite数据库的映射关系,在获取待插入数据对象和SQLite数据库的映射关系之前,该方法还包括:获取属性类,其中,属性类中预先定义了数据映射规则;以及根据属性类向待插入数据对象中添加预设属性,其中,预设属性包含待插入数据对象与SQLite数据库的映射关系,获取待插入数据对象和SQLite数据库的映射关系包括:通过预设处理接口解析带有预设属性的待插入数据对象,得到映射关系。
本申请实施例的属性类预先定义了数据映射规则,例如,定义一个名为DatabaseColumn的属性类,该DatabaseColumn类定义了数据对象保存到SQLite数据库中对应的列名,数据类型,是否允许空值等,举例如下:
在定义了上述DatabaseColumn类之后,即可以直接调用该属性类,例如,需要插入至SQLite数据库的数据对象为学生类IStudent(即学生数据对象),对学生类中需要插入的字段增加相关属性(即预设属性):
在上例中,该学生类IStudent将被映射到SQLite数据库中名为Student的数据表中,IStudent的Id字段、Name字段和Birthday字段将相应的保存为数据表中的Id列、Name列和Birthday列。
需要说明的是,上述通过反射技术来定义需要插入至SQLite数据库的数据对象的方法并不限制于常见的开发语言所提供的反射技术,例如,Java、C#等高级开发语言提供的反射技术。
本申请实施例在向待插入数据对象中添加预设属性之后,直接调用预设处理接口对添加预设属性的待插入数据对象进行解析,例如,上述IStudent类,预设处理接口可以利用反射技术解析IStudent类,从而可以从中解析出Id字段、Name字段和Birthday字段所对应的需要保存在SQLite数据库里面的列名和待插入的数据表名Student。
优选地,为了避免数据表的冗余,调用预设处理接口并通过预设处理接口根据映射关系将待插入数据对象插入至SQLite数据库中包括:通过预设处理接口判断SQLite数据库中是否存在与待插入数据对象的类型对应的数据表;在通过预设处理接口判断出SQLite数据库中不存在与待插入数据对象的类型对应的数据表时,根据映射关系在SQLite数据库中创建与待插入数据对象的类型对应的数据表;通过预设处理接口从待插入数据对象中获取各个字段的值;以及通过预设处理接口将各个字段的值插入至与待插入数据对象的类型对应的数据表中。
在本申请实施例中,先通过预设处理接口判断SQLite数据库中是否存在与待插入数据对象的类型对应的数据表,例如,待插入数据对象的类型为上述IStudent类,如果SQLite数据库中已经存在IStudent类对应的数据表时,则直接将待插入数据对象插入至IStudent类对应的数据表中,如果SQLite数据库中不存在IStudent类对应的数据表时,则需要在SQLite数据库中创建IStudent类对应的数据表,以及用于数据插入的T-SQL语句模板。
本申请实施例只有在通过预设处理接口判断出SQLite数据库中不存在与待插入数据对象的类型对应的数据表时,才根据映射关系在SQLite数据库中创建与待插入数据对象的类型对应的数据表,从而可以避免多次创建相同的数据表,造成SQLite数据库中数据表的冗余。
可选地,在通过预设处理接口判断出SQLite数据库中存在与待插入数据对象的类型对应的数据表时,该方法还包括:通过预设处理接口从待插入数据对象中获取各个字段的值;以及通过预设处理接口根据映射关系将各个字段的值插入至与待插入数据对象的类型对应的数据表中。
具体地,在通过预设处理接口判断出SQLite数据库中存在与待插入数据对象的类型对应的数据表时,预设处理接口将直接从待插入数据对象中读取各个字段的值并插入至对应的数据表中,例如,待插入数据对象为IStudent类对象std,预设处理接口将直接从std对象中获取Id字段、Name字段和Birthday字段的值,并替换上述创建的T-SQL语句模板,从而得到完整的T-SQL插入语句,然后直接执行该T-SQL插入语句即可将对象std数据插入至对应的数据表中。
优选地,判断SQLite数据库中是否存在与待插入数据对象的类型对应的数据表包括:判断待插入数据对象的类型是否与封装类实例化的类型相同,其中,封装类为泛型类,封装类中包含预设处理接口;如果判断出待插入数据对象的类型与封装类实例化的类型相同,则确定SQLite数据库中存在与待插入数据对象的类型对应的数据表;以及如果判断出待插入数据对象的类型与封装类实例化的类型不相同,则确定SQLite数据库中不存在与待插入数据对象的类型对应的数据表。
本申请实施例的封装类使用泛型实现,即为泛型类,主要包含往SQLite数据库中插入数据的实现接口,即预设处理接口。具体地,在该封装类中,由于该封装类是使用泛型实现的,所以在该封装类实例化的时候用户可以指定该封装类要操作的具体数据对象的类型,例如,上述IStudent类,该封装类利用反射技术解析IStudent类,从而可以从中解析出Id字段、Name字段和Birthday字段所对应的需要保存在SQLite数据库里面的列名,并且自动生成创建数据表和插入数据库对应的T-SQL语句模板,从而在该封装类初始化完成的时候,对应的SQLite数据库文件里面将包含创建的数据库表结构。可选地,该封装类具体定义可以如下:
以下以封装类实例化的类型为IStudent类为例进行说明,判断待插入数据对象的类型是否为IStudent类,如果待插入数据对象的类型为IStudent类,则说明SQLite数据库中存在与待插入数据对象的类型对应的数据表,如果待插入数据对象的类型不是IStudent类,则说明SQLite数据库中还未创建与待插入数据对象的类型对应的数据表,此时,则重复初始化时的操作,对新传入的数据对象的类型进行反射操作,读取里面定义的元数据,创建数据表和插入数据的T-SQL语句模板,然后再获取待插入数据对象的各个字段值,并插入到SQLite数据库中创建的数据表中。
根据本申请又一实施例的数据插入方法,包括如下步骤:
步骤S202,定义相关反射技术使用的属性类,并将该类应用于需要插入的数据结构定义类。
例如,用户需要保存一个类型为学生类的对象到SQLite数据库中,则可以先定义一个名为DatabaseColumn的属性类,该DatabaseColumn类定义了数据对象保存到SQLite数据库中对应的列名,数据类型,是否允许空值等,举例如下:
在定义了上述DatabaseColumn类之后,即可以直接调用该属性类,例如,需要插入至SQLite数据库的数据对象为学生类IStudent(即学生数据对象),对学生类中需要插入的字段增加相关属性(即预设属性):
在上例中,该学生类IStudent将被映射到SQLite数据库中名为Student的数据表中,IStudent的Id字段、Name字段和Birthday字段将相应的保存为数据表中的Id列、Name列和Birthday列。
需要说明的是,上述通过反射技术来定义需要插入至SQLite数据库的数据对象的方法,并不限制于常见的开发语言所提供的反射技术,例如,Java、C#等高级开发语言提供的反射技术。
步骤S204,对SQLite数据库的操作类进行封装,该封装类使用泛型实现,主要包含往SQLite数据库中插入数据的实现接口,即上述预设处理接口。
在该封装类中,由于该封装类是使用泛型实现的,所以在该封装类实例化的时候用户可以指定该封装类要操作的具体数据对象的类型,例如,上述IStudent类,该封装类利用反射技术解析IStudent类,从而可以从中解析出Id字段、Name字段和Birthday字段所对应的需要保存在SQLite数据库里面的列名,并且自动生成创建数据表和插入数据库对应的T-SQL语句模板,从而在该封装类初始化完成的时候,对应的SQLite数据库文件里面将包含创建的数据库表结构。可选地,该封装类具体定义可以如下:
步骤S206,使用步骤S204中定义的封装类,直接调用其公开的接口(即上述预设处理接口)往SQLite数据库中写数据即可,写完即可关闭数据库,将保存结果用于后继分析、传输等。
由于该封装类定义的是泛型的方法,用户可以直接使用该方法。以下以封装类实例化的类型为IStudent类为例进行说明,判断待插入数据对象的类型是否为IStudent类,如果待插入数据对象的类型为IStudent类,则说明SQLite数据库中存在与待插入数据对象的类型对应的数据表,如果待插入数据对象的类型不是IStudent类,则说明SQLite数据库中还未创建与待插入数据对象的类型对应的数据表,此时,则重复初始化时的操作,对新传入的数据对象的类型进行反射操作,读取里面定义的元数据,创建数据表和插入数据的T-SQL语句模板,然后再获取待插入数据对象的各个字段值,并插入到SQLite数据库中创建的数据表中。
从以上的描述中,可以看出,本申请实施例的数据插入方法,用户仅需在初始化时指定SQLite数据库保存的位置,然后对需要保存到数据库的数据对象的字段添加若干属性,之后就可以在系统中随时往SQLite数据库中插入各种定义过的数据对象,而不需关心SQLite数据库连接的打开和关闭,不需用户显示创建数据库表以及构建数据插入语句等繁琐操作,将SQLite数据库的数据插入操作完全设计成一个黑盒组件,从而使SQLite动态支持插入各种数据对象,特别是复杂对象的能力,使得开发人员可以将精力转移到自身业务的开发上。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本申请实施例的另一方面,提供了一种数据插入装置,该数据插入装置可以用于执行本申请实施例的数据插入方法,本申请实施例的数据插入方法也可以通过本申请实施例的数据插入装置来执行。
图2是根据本申请实施例的数据插入装置的示意图,如图2所示,该装置包括:第一获取单元10和第一插入单元20。
第一获取单元10,用于获取待插入数据对象和SQLite数据库的映射关系,其中,待插入数据对象为需要插入SQLite数据库的数据对象。
第一插入单元20,用于调用预设处理接口并通过预设处理接口根据映射关系将待插入数据对象插入至SQLite数据库中,其中,预设处理接口中预先封装了用于将数据插入至SQLite数据库的方法。
本申请实施例通过第一获取单元10获取待插入数据对象和SQLite数据库的映射关系,其中,待插入数据对象为需要插入SQLite数据库的数据对象;以及第一插入单元20调用预设处理接口并通过预设处理接口根据映射关系将待插入数据对象插入至SQLite数据库中,其中,预设处理接口中预先封装了用于将数据插入至SQLite数据库的方法,本申请仅需要建立好待插入数据对象和SQLite数据库的映射关系即可以直接调用预设处理接口实现数据插入,操作简单方面,解决了相关技术中向SQLite数据库中插入数据时操作较为繁琐的问题,进而达到了简化向SQLite数据库中插入数据的操作的效果。
可选地,该装置还包括:第二获取单元,用于获取属性类,其中,属性类中预先定义了数据映射规则;以及添加单元,用于根据属性类向待插入数据对象中添加预设属性,其中,预设属性包含待插入数据对象与SQLite数据库的映射关系,第一获取单元10包括:解析模块,用于通过预设处理接口解析带有预设属性的待插入数据对象,得到映射关系。
可选地,第一插入单元20包括:判断模块,用于通过预设处理接口判断SQLite数据库中是否存在与待插入数据对象的类型对应的数据表;创建模块,用于在通过预设处理接口判断出SQLite数据库中不存在与待插入数据对象的类型对应的数据表时,根据映射关系在SQLite数据库中创建与待插入数据对象的类型对应的数据表;获取模块,用于通过预设处理接口从待插入数据对象中获取各个字段的值;以及插入模块,用于通过预设处理接口将各个字段的值插入至与待插入数据对象的类型对应的数据表中。
可选地,在通过预设处理接口判断出SQLite数据库中存在与待插入数据对象的类型对应的数据表时,该装置还包括:第三获取单元,用于通过预设处理接口从待插入数据对象中获取各个字段的值;以及第二插入单元,用于通过预设处理接口根据映射关系将各个字段的值插入至与待插入数据对象的类型对应的数据表中。
可选地,判断模块包括:判断子模块,用于判断待插入数据对象的类型是否与封装类实例化的类型相同,其中,封装类为泛型类,封装类中包含预设处理接口;第一确定子模块,用于在判断出待插入数据对象的类型与封装类实例化的类型相同时,则确定SQLite数据库中存在与待插入数据对象的类型对应的数据表;以及第二确定子模块,用于在判断出待插入数据对象的类型与封装类实例化的类型不相同时,则确定SQLite数据库中不存在与待插入数据对象的类型对应的数据表。
所述数据插入装置包括处理器和存储器,上述第一获取单元和第一插入单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来向SQLite数据库中插入数据。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:获取待插入数据对象和SQLite数据库的映射关系,其中,待插入数据对象为需要插入SQLite数据库的数据对象;以及调用预设处理接口并通过预设处理接口根据映射关系将待插入数据对象插入至SQLite数据库中,其中,预设处理接口中预先封装了用于将数据插入至SQLite数据库的方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种数据插入方法,其特征在于,包括:
获取待插入数据对象和SQLite数据库的映射关系,其中,所述待插入数据对象为需要插入所述SQLite数据库的数据对象;以及
调用预设处理接口并通过所述预设处理接口根据所述映射关系将所述待插入数据对象插入至所述SQLite数据库中,其中,所述预设处理接口中预先封装了用于将数据插入至所述SQLite数据库的方法。
2.根据权利要求1所述的方法,其特征在于,
在获取待插入数据对象和SQLite数据库的映射关系之前,所述方法还包括:获取属性类,其中,所述属性类中预先定义了数据映射规则;以及根据所述属性类向所述待插入数据对象中添加预设属性,其中,所述预设属性包含所述待插入数据对象与所述SQLite数据库的映射关系,
获取待插入数据对象和SQLite数据库的映射关系包括:通过所述预设处理接口解析带有预设属性的待插入数据对象,得到所述映射关系。
3.根据权利要求1或2所述的方法,其特征在于,调用预设处理接口并通过所述预设处理接口根据所述映射关系将所述待插入数据对象插入至所述SQLite数据库中包括:
通过所述预设处理接口判断所述SQLite数据库中是否存在与所述待插入数据对象的类型对应的数据表;
在通过所述预设处理接口判断出所述SQLite数据库中不存在与所述待插入数据对象的类型对应的数据表时,根据所述映射关系在所述SQLite数据库中创建与所述待插入数据对象的类型对应的数据表;
通过所述预设处理接口从所述待插入数据对象中获取各个字段的值;以及
通过所述预设处理接口将所述各个字段的值插入至与所述待插入数据对象的类型对应的数据表中。
4.根据权利要求3所述的方法,其特征在于,在通过所述预设处理接口判断出所述SQLite数据库中存在与所述待插入数据对象的类型对应的数据表时,所述方法还包括:
通过所述预设处理接口从所述待插入数据对象中获取各个字段的值;以及
通过所述预设处理接口根据所述映射关系将所述各个字段的值插入至与所述待插入数据对象的类型对应的数据表中。
5.根据权利要求3所述的方法,其特征在于,判断所述SQLite数据库中是否存在与所述待插入数据对象的类型对应的数据表包括:
判断所述待插入数据对象的类型是否与封装类实例化的类型相同,其中,所述封装类为泛型类,所述封装类中包含所述预设处理接口;
如果判断出所述待插入数据对象的类型与所述封装类实例化的类型相同,则确定所述SQLite数据库中存在与所述待插入数据对象的类型对应的数据表;以及
如果判断出所述待插入数据对象的类型与所述封装类实例化的类型不相同,则确定所述SQLite数据库中不存在与所述待插入数据对象的类型对应的数据表。
6.一种数据插入装置,其特征在于,包括:
第一获取单元,用于建立待插入数据对象和SQLite数据库的映射关系,其中,所述待插入数据对象为需要插入所述SQLite数据库的数据对象;以及
第一插入单元,用于调用预设处理接口并通过所述预设处理接口根据所述映射关系将所述待插入数据对象插入至所述SQLite数据库中,其中,所述预设处理接口中预先封装了用于将数据插入至所述SQLite数据库的方法。
7.根据权利要求6所述的装置,其特征在于,
所述装置还包括:第二获取单元,用于获取属性类,其中,所述属性类中预先定义了数据映射规则;以及添加单元,用于根据所述属性类向所述待插入数据对象中添加预设属性,其中,所述预设属性包含所述待插入数据对象与所述SQLite数据库的映射关系,
所述第一获取单元包括:解析模块,用于通过所述预设处理接口解析带有预设属性的待插入数据对象,得到所述映射关系。
8.根据权利要求6或7所述的装置,其特征在于,所述第一插入单元包括:
判断模块,用于通过所述预设处理接口判断所述SQLite数据库中是否存在与所述待插入数据对象的类型对应的数据表;
创建模块,用于在通过所述预设处理接口判断出所述SQLite数据库中不存在与所述待插入数据对象的类型对应的数据表时,根据所述映射关系在所述SQLite数据库中创建与所述待插入数据对象的类型对应的数据表;
获取模块,用于通过所述预设处理接口从所述待插入数据对象中获取各个字段的值;以及
插入模块,用于通过所述预设处理接口将所述各个字段的值插入至与所述待插入数据对象的类型对应的数据表中。
9.根据权利要求8所述的装置,其特征在于,在通过所述预设处理接口判断出所述SQLite数据库中存在与所述待插入数据对象的类型对应的数据表时,所述装置还包括:
第三获取单元,用于通过所述预设处理接口从所述待插入数据对象中获取各个字段的值;以及
第二插入单元,用于通过所述预设处理接口根据所述映射关系将所述各个字段的值插入至与所述待插入数据对象的类型对应的数据表中。
10.根据权利要求8所述的装置,其特征在于,所述判断模块包括:
判断子模块,用于判断所述待插入数据对象的类型是否与封装类实例化的类型相同,其中,所述封装类为泛型类,所述封装类中包含所述预设处理接口;
第一确定子模块,用于在判断出所述待插入数据对象的类型与所述封装类实例化的类型相同时,则确定所述SQLite数据库中存在与所述待插入数据对象的类型对应的数据表;以及
第二确定子模块,用于在判断出所述待插入数据对象的类型与所述封装类实例化的类型不相同时,则确定所述SQLite数据库中不存在与所述待插入数据对象的类型对应的数据表。
CN201511017255.XA 2015-12-29 2015-12-29 数据插入方法和装置 Active CN106933828B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511017255.XA CN106933828B (zh) 2015-12-29 2015-12-29 数据插入方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511017255.XA CN106933828B (zh) 2015-12-29 2015-12-29 数据插入方法和装置

Publications (2)

Publication Number Publication Date
CN106933828A true CN106933828A (zh) 2017-07-07
CN106933828B CN106933828B (zh) 2019-11-12

Family

ID=59441541

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511017255.XA Active CN106933828B (zh) 2015-12-29 2015-12-29 数据插入方法和装置

Country Status (1)

Country Link
CN (1) CN106933828B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109063044A (zh) * 2018-07-18 2018-12-21 平安科技(深圳)有限公司 数据库表的参数插入方法、装置、终端设备及存储介质
CN109299126A (zh) * 2018-11-21 2019-02-01 金蝶软件(中国)有限公司 数据同步方法、装置、计算机设备和存储介质
CN109299125A (zh) * 2018-10-31 2019-02-01 中国银行股份有限公司 数据库更新方法及装置
CN112988859A (zh) * 2019-12-17 2021-06-18 中国移动通信集团浙江有限公司 数据处理方法、装置、计算设备及计算机存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104573068A (zh) * 2015-01-23 2015-04-29 四川中科腾信科技有限公司 一种基于大数据的信息处理方法
CN104881461A (zh) * 2015-05-22 2015-09-02 国云科技股份有限公司 一种快速数据保存方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104573068A (zh) * 2015-01-23 2015-04-29 四川中科腾信科技有限公司 一种基于大数据的信息处理方法
CN104881461A (zh) * 2015-05-22 2015-09-02 国云科技股份有限公司 一种快速数据保存方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109063044A (zh) * 2018-07-18 2018-12-21 平安科技(深圳)有限公司 数据库表的参数插入方法、装置、终端设备及存储介质
CN109063044B (zh) * 2018-07-18 2023-04-18 平安科技(深圳)有限公司 数据库表的参数插入方法、装置、终端设备及存储介质
CN109299125A (zh) * 2018-10-31 2019-02-01 中国银行股份有限公司 数据库更新方法及装置
CN109299125B (zh) * 2018-10-31 2021-05-28 中国银行股份有限公司 数据库更新方法及装置
CN109299126A (zh) * 2018-11-21 2019-02-01 金蝶软件(中国)有限公司 数据同步方法、装置、计算机设备和存储介质
CN112988859A (zh) * 2019-12-17 2021-06-18 中国移动通信集团浙江有限公司 数据处理方法、装置、计算设备及计算机存储介质

Also Published As

Publication number Publication date
CN106933828B (zh) 2019-11-12

Similar Documents

Publication Publication Date Title
CN103810196B (zh) 基于业务模型进行数据库性能测试的方法
US6038565A (en) Object oriented data format mapping mechanism
CN104360865B (zh) 一种序列化方法、反序列化方法及相关设备
CN112930529B (zh) 从概念数据模型生成软件工件
CN106933828A (zh) 数据插入方法和装置
US8418142B2 (en) Architecture for data validation
CN109343833B (zh) 数据处理平台以及数据处理方法
CN110795697B (zh) 逻辑表达式的获取方法、装置、存储介质以及电子装置
CN106250104A (zh) 一种针对服务器的远程操作系统、方法及装置
CN107341027A (zh) 用户界面的生成方法和生成装置
CN116894413A (zh) 一种基于硬件的逻辑映射方法、装置、设备及存储介质
US20020152457A1 (en) Methods and systems for providing polymorphism in a programming language
CN106126221A (zh) 一种表单生成方法、装置和系统
CN112187713B (zh) 报文转换的方法、装置、计算机设备和存储介质
CN106897080A (zh) 动态链接库的处理方法及装置
US6842888B2 (en) Method and apparatus for hierarchically restructuring portions of a hierarchical database based on selected attributes
CN109669678A (zh) 模板引擎整合方法、装置、电子设备及存储介质
CN104750468B (zh) 一种服务端拓扑数据转换方法和转换装置
CN116661789A (zh) 页面结构转换方法、装置、计算机设备及可读存储介质
CN108932069A (zh) 输入法候选词条确定方法、装置、设备及可读存储介质
CN113050921A (zh) 一种网页转换方法、装置、存储介质和计算机设备
CN101794240B (zh) 一种聚合数据内容的方法和系统
CN110647371A (zh) 一种基于业务配置的多语言资源文件解析方法和系统
CN109388406A (zh) 转换java代码的方法及装置、存储介质、电子装置
US20080120334A1 (en) Database system and method

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Applicant after: Beijing Guoshuang Technology Co.,Ltd.

Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing

Applicant before: Beijing Guoshuang Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant