一种在Flutter中实现DBORM的方法技术

技术编号:34171368 阅读:23 留言:0更新日期:2022-07-17 10:51
本发明专利技术公开了一种在Flutter中实现DB ORM的方法,属于计算机应用技术领域,通过Model实例的JOSNObject获取key

A method of implementing dborm in fluent

【技术实现步骤摘要】
一种在Flutter中实现DB ORM的方法


[0001]本专利技术涉及计算机应用
,具体地说是一种在Flutter中实现DB ORM 的方法。

技术介绍

[0002]在使用Flutter进行跨平台开发时,我们在对数据库进行操作时,由于 Flutter对dart基础语言反射的屏蔽,导致无法进行业内常用的DB ORM操作处理方式,导致操作效率低下、容易发生错误、易读性低,而且产生很多胶水代码。

技术实现思路

[0003]本专利技术的技术任务是针对以上不足之处,提供一种在Flutter中实现DB ORM 的方法,能够在Flutter开发环境下,有效提升操作数据库的效率。
[0004]本专利技术解决其技术问题所采用的技术方案是:
[0005]一种在Flutter中实现DB ORM的方法,通过Model实例的JOSNObject获取key

values从而拼装相应的SQL,该方法的实现过程如下:
[0006]1)、首先声明Tuple类;
[0007]2)、通过JSONSerializable通用API获取Model实例的key

value;
[0008]3)、遍历步骤2)获取到的所有key

value,将这些数据实例化List<Tuple>;
[0009]4)、通过步骤3)获取到的List<Tuple>拼装create SQL语句;
[0010]5)、通过步骤1)至步骤4),使用相同的方法拼装insert、update、delete 语句,完成Flutter下DB ORM的设计。
[0011]本方法通过创建特定类,形成一个程序能力库,通过该能力库可以实现在 Flutter端的DB ORM,从而提升移动端数据库表创建、查询、删除、更新等能力。
[0012]优选的,在Flutter中创建Tuple类,Tuple类包含2

6个属性,属性的类型为dynamic;
[0013]第一个属性根据指定Model的属性名来定义;第二个属性为varchar或者 Text,数据类型的处理,根据Model的属性类型来定义,加入name类型为String;
[0014]然后将这些属性集中放到List中处理,再拼装SQL,从而实现Flutter DBORM的model映射表创建操作。
[0015]当处理DB ORM创建表时,使用所述的特定类,第一个属性根据指定Model 的属性名来定义,第二个属性为varchar或者Text;将这些特定类属性集中放到List中处理,之后拼装SQL,从而实现Flutter DB ORM的model映射表创建操作。使用相同的方法可完成查询、删除、更新等操作。
[0016]优选的,所述Tuple类为IHTTupleTwo类,IHTTupleTwo类包含两个属性 item1,item2,分别用来存储Model转化出的KEY名称和VALUE类型。
[0017]进一步的,对于对于实现Flutter DB ORM的model映射表创建,
[0018]所述第一个属性item1根据指定Model的属性名来定义,需要根据 Model(name,age,id)来创建一个表时,第一个属性使用IHTTupleTwo(name,数据类型)表示;
[0019]第二个属性item2为varchar(255)或者Text。
[0020]进一步的,根据存储好的List<IHTTupleTwo>数组自动拼装出create SQL,遍历每一个IHTTupleTwo,根据Model属性和值映射出List<IHTTupleTwo>数据;
[0021]将Model转化为JSONObject:Map<String,dynamic>之后遍历所有的key作为一个IHTTupleTwo的item1,value类型作为IHTTupleTwo的item2。
[0022]优选的,所述获取Model实例的key

value,通过JSONSerializable通用 API获取到JSONObject(key

value(Map<String,dynamic>)或者是 List<Map<String,dynamic>>);
[0023]然后通过List遍历或者直接通过map.keys获取属性与值的类型数据,从而获取到真实的Model数据名称与值类型。
[0024]优选的,步骤3)中所述的获取到所有key

value,并将这些数据实例化 List<IHTTupleTwo>:
[0025]通过value的runTimeType获取到值的运行时类型,通过map.keys获取属性名称;通过第一步声明的IHTTupleTwo类和上面key

value来实例化此对象;
[0026]遍历所有的key

value创建所有的IHTTupleTwo实例,构成一个 List<IHTTupleTwo>。
[0027]如Model模型实例一对key

value为

name

:

smallDog

,那么生成的IHTTupleTwo实例为item1:name,item2:varchar(255)。
[0028]本专利技术还要求保护一种在Flutter中实现DB ORM的系统,该系统以在 Flutter自建特定类的方式自动构造该特定类列表,通过列表自动拼装SQL语句;
[0029]该系统实现上述的在Flutter中实现DB ORM的方法。
[0030]本专利技术还要求保护一种在Flutter中实现DB ORM的装置,包括:至少一个存储器和至少一个处理器;
[0031]所述至少一个存储器,用于存储机器可读程序;
[0032]所述至少一个处理器,用于调用所述机器可读程序,执行上述的在Flutter 中实现DB ORM的方法。
[0033]本专利技术还要求保护计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行上述的在Flutter 中实现DB ORM的方法。
[0034]本专利技术的一种在Flutter中实现DB ORM的方法与现有技术相比,具有以下有益效果:
[0035]本方法进行DB ORM的设计,弥补了Flutter基础语言dart没有反射特性从而导致Flutter开发中无法通过业内通用ORM实现DB本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在Flutter中实现DB ORM的方法,其特征在于,通过Model实例的JOSNObject获取key

values从而拼装相应的SQL,该方法的实现过程如下:1)、首先声明Tuple类;2)、通过JSONSerializable通用API获取Model实例的key

value;3)、遍历步骤2)获取到的所有key

value,将这些数据实例化List<Tuple>;4)、通过步骤3)获取到的List<Tuple>拼装create SQL语句;5)、通过步骤1)至步骤4),使用相同的方法拼装insert、update、delete语句,完成Flutter下DB ORM的设计。2.根据权利要求1所述的一种在Flutter中实现DB ORM的方法,其特征在于,在Flutter中创建Tuple类,Tuple类包含2

6个属性,属性的类型为dynamic;第一个属性根据指定Model的属性名来定义;第二个属性为varchar或者Text,数据类型的处理,根据Model的属性类型来定义,加入name类型为String;然后将这些属性集中放到List中处理,再拼装SQL,从而实现Flutter DB ORM的model映射表创建操作。3.根据权利要求1或2所述的一种在Flutter中实现DB ORM的方法,其特征在于,所述Tuple类为IHTTupleTwo类,IHTTupleTwo类包含两个属性item1,item2,分别用来存储Model转化出的KEY名称和VALUE类型。4.根据权利要求3所述的一种在Flutter中实现DB ORM的方法,其特征在于对于实现Flutter DB ORM的model映射表创建,所述第一个属性item1根据指定Model的属性名来定义,需要根据Model(name,age,id)来创建一个表时,第一个属性使用IHTTupleTwo(name,数据类型)表示;第二个属性item2为varchar(255)或者Text。5.根据权利要求3所述的一种在Flutter中实现DB ORM的方法,其特征在于,根据存储好的List<IHTTupleTwo>数组自动拼装出create SQL,遍历每一个IHTTupleTwo,根据Model属性和值映射出List<IHTTu...

【专利技术属性】
技术研发人员:王柏华单文政马仕信孙彪张连超
申请(专利权)人:浪潮软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1