面向对象中利用orm框架实现数据库操作的方法及系统的制作方法

文档序号:6524469阅读:197来源:国知局
面向对象中利用orm框架实现数据库操作的方法及系统的制作方法
【专利摘要】本发明涉及数据库应用领域,具体是一种面向对象中利用ORM框架实现数据库操作的方法及系统,所述方法:对所有的SQL语句进行统一处理,使处理后所有的SQL语句通过通用API接口即可实现数据库访问和操作,避免不同数据库接口不同造成的访问切换,使数据库的访问简便化;通过ORM实体自动生成SQL脚本,生成的过程通过模板元和宏实现,避免了人工记忆大量SQL语句的麻烦,减少人工拼写的错误,提升开发效率;调用时通过链式调用的方式对数据库进行操作,实现访问方式的灵活性。所述系统包括处理模块、转换模块和操作模块,可同样实现方法中所述内容。本发明对小型或大型数据库的操作,都使操作简便化和自动化,有效提升了访问的效率和正确率。
【专利说明】面向对象中利用ORM框架实现数据库操作的方法及系统
【技术领域】
[0001]本发明涉及数据库应用领域,特别是一种面向对象中利用ORM框架实现数据库操作的方法及系统。
【背景技术】
[0002]面向对象中,当访问数据库时,因为数据库的不同及不同的数据库接口的不同,导致访问数据库时需要对访问方式进行切换,使访问操作十分不便。访问数据库时,一般是通过sql语言实现,需要拼写生成各种sql语句,拼写工作比较麻烦,工作多具有重复性,且容易出错。
[0003]现有技术采用ORM语言访问数据库,如java和c#中有很多ORM框架,c#中的entity framework、Linq to Sql、NHibernate 等,java 中有 Hibernate、Mybatis 等,其它各种开源的ORM库也很多。然而,c++的世界中,却鲜有ORM框架,c++中比较知名的ORM库应该是ODB 了,但是ODB的使用比较麻烦,需要三个库,写的ORM代码还需要ODB专门编译。

【发明内容】

[0004]为解决上述问题,本发明的目的在于提供一种面向对象中利用ORM框架实现数据库操作的方法和系统,自动生成SQL语句,消除拼写错误,并通过统一接口访问数据库,使访问不同的数据库时不用切换访问方式即可实现访问,且访问操作简单。
[0005]本发明解决其问题所采用的技术方案是:
本发明的实施例提供了一种面向对象中利用ORM框架实现数据库操作的方法,根据ORM框架和业务实体生成对数据库进行操作的调用命令,此调用命令可以采用链式调用的方式生成。
[0006]进一步,ORM框架通过模板元结构自动解析此调用命令并生成对应的SQL脚本,其中,ORM框架将业务实体的字体字段和字段值返回给模板元结构后,模板元结构对类型不同、数量不同的实体字段进行统一解析,生成结构体字段,通过宏获取结构字段中的字段内容,并根据字段内容生成对应的SQL脚本。模板元结构可以将类型不同、数量不同的实体字段进行一致性的解析,解析出来的结构体字段通过宏获取字段内容,从而自动生成SQL脚本,避免人为的拼写可能产生的错误,以及大量的拼写需要记忆的语句比较多,相应省去拼写的速度较慢而浪费时间。
[0007]进一步,通过API接口调用SQL脚本对数据库进行操作;其中,API接口是已经转换后的接口,此接口可以提供给所有需要调用的程序统一调用,避免不同的数据库调用方式的切换,当程序需要对数据库进行操作时,通过ORM实体转换而自动生成的SQL脚本即可实现操作。本发明从整体上简化了面向对象中对数据库进行操作的不便,极大地提升了在现有面向对象操作中对数据库访问的速度和效率,尤其是对庞大的系统数据库进行操作时,要本发明所起到的效果是不可替代的。
[0008]其中,本发明通过可变参数模板对所有的SQL语句进行处理,使处理后的所有SQL语句通过一组封装后的通用API接口即可被接收识别;对SQL语句统一处理后,SQL语句中参数的类型和个数便具有统一性,更容易进行接收,从而简化SQL语句的处理,设置统一的API接口后,所有的处理程序都可以通过此接口完成对数据库的操作,而无须转换访问方式。
[0009]本发明的实施例提供了一种面向对象中利用ORM框架实现数据库操作的系统,包括:
第一装置,根据ORM框架和业务实体生成对数据库进行操作的调用命令;
第二装置,框架自动解析调用命令并生成对应的SQL脚本;
第三装置,通过API接口调用SQL脚本对数据库进行操作;
其中,所述API接口为通用的数据库操作接口,其屏蔽了不同数据库操作接口的差异,所述SQL脚本经过统一处理后通过API接口进行识别与接收。
[0010]通过所述系统简化对数据库的操作,SQL脚本自动生成,节省时时,避免人工操作可能产生的错误,使用统一的API接口通过链式调用完成操作,方便对不同数据库的操作。
[0011]本发明的有益效果是:
本发明采用一种面向对象中利用ORM框架实现数据库操作的方法和系统,对所有的SQL语句进行统一处理,使处理后所有的SQL语句通过设置的通用API接口即可实现调用,从而避免不同数据库接口不同造成的访问切换,使数据库的访问操作简便化;通过ORM实体自动生成SQL脚本,生成的过程通过模板元和宏实现,避免了重复而繁琐拼写SQL语句的麻烦,减少了人工拼写的错误,提升了开发效率;调用时通过链式调用的方式对数据库进行操作,实现访问方式的灵活性。本发明无论是对小型数据库的操作或者是大型数据库的操作,都使操作简便化和自动化,有效提升了访问的效率和正确率。
【专利附图】

【附图说明】
[0012]下面结合附图和实例对本发明作进一步说明。
[0013]图1是本发明所述方法的流程图;
图2是自动生成SQL脚本的流程图。
【具体实施方式】
[0014]在现有面向对象技术中,在访问数据库时,因为访问接口不一致,需要频繁更换接口,不同的数据库,需要改变调用方式,人工拼写SQL语句导致的错误频频,且需要记忆大量的调用语句,拼写速度较慢。
[0015]对此,参照图1所示的流程图,本发明提供了一种面向对象中利用ORM框架实现数据库操作的方法,通过ORM框架实现对数据库的访问,首先根据ORM框架和业务实体生成对数据库进行操作的调用命令,调用命令以链式调用的方式生成,如queryCD 0.where (…).0rderby (…),其中,T是业务实体,它和数据库中的某个物理表是对应的,二者字段个数和类型是一致的,不过存在形式不同,实体是在内存中,物理表是在数据库中,这个查询命令是链式调用的,先orderby排序,然后再where限制条件,最后再query查询结果。此时没有生成sql脚本,只有几个API接口,这几个API组成了一个数据库操作命令。
[0016]其次,ORM框架自动解析调用命令并生成对应的SQL脚本。[0017]最后,通过API接口调用SQL脚本对数据库进行操作。
[0018]其中,本发明通过可变参数模板对所有的SQL语句进行处理,可变参数模板可接收任意个数和类型的参数,其可对SQL语句中参数个数和参数类型都是变化的情况做统一处理,使处理后所有的SQL语句具有统一的格式。而设置的API接口为通用的数据库操作接口,其屏蔽了不同数据库操作接口的差异,因此,此接口可被不同的数据库所调用,且带有统一格式的SQL语句可被统一设置的API接口所识别和接收。
[0019]参照图2所示,当需要访问数据库时,ORM框架自动解析调用命令并生成对应的SQL脚本,ORM (Object-RelationMapping,对象-关系映射),是一种为了解决面向对象与关系数据库物理表和内存对象相互转换的技术,ORM是通过描述对象和关系数据库之间的映射,将程序中的对象自动持久化到关系数据库中。自动生成SQL脚本通过模板元实现,模板元结构tuple是一个泛化的pair,或者说是一个通用的结构体,它可以容纳任意数量和任意类型的字段。ORM业务实体提供有函数将实体字段和字段值返回给模板元,模板元对实体字段数量、类型各不相同的的实体字段进行统一解析,从而屏蔽实体字段数量、类型不同的差异,并生成对应的结构体字段,通过宏提取结构体字段中的内容,并根据字段内容生成对应的SQL脚本,其中,宏的内容是结构体字段,结构体字段的书写可以智能感知生成,从而有效避免书写错误,而且也很方便的选择需要的字段。
[0020]脚本生成后,通过API接口以链式调用的方式操作数据库,由于API接口具有通用性,实现接口调用就比较方便,不需要对不同的数据库进行接口转换,同时,链式调用更接近自然语言,比如,通过实体查询表结构时,可以连续调用多个函数:query〈T>().where (…).0rderby (…)等,因此,可方便地通过链式调用通过SQL脚本操作数据库。
[0021]本发明提供了 一种面向对象中利用ORM框架实现数据库操作的系统,包括:
第一装置,根据ORM框架和业务实体生成对数据库进行操作的调用命令;
第二装置,框架自动解析调用命令并生成对应的SQL脚本;
第三装置,通过API接口调用SQL脚本对数据库进行操作;
其中,所述API接口为通用的数据库操作接口,其屏蔽了不同数据库操作接口的差异,所述SQL脚本经过统一处理后通过API接口进行识别与接收。
[0022]所述ORM业务实体以链式调用的方式生成对数据库进行操作的调用命令。
[0023]所述SQL脚本通过可变参数模板对其中SQL语句的参数类型进行统一处理,使处理后所有的SQL语句通过API接口进行识别与接收。
[0024]ORM框架通过模板元结构自动解析此调用命令并生成对应的SQL脚本,其中,ORM框架将业务实体的实体字段和字段值返回给模板元结构后,模板元结构对类型不同、数量不同的实体字段进行统一解析,生成结构体字段,通过宏获取结构字段中的字段内容,并根据字段内容生成对应的SQL脚本。
[0025]所述系统采用以上方法中所述的内容,通过所述系统可完全实现以上方法中所述目的,具体参见方法中的内容,在此不再赘述。
[0026]以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。
【权利要求】
1.一种面向对象中利用ORM框架实现数据库操作的方法,其特征在于,包括: 根据ORM框架和业务实体生成对数据库进行操作的调用命令; ORM框架自动解析调用命令并生成对应的SQL脚本; 通过API接口调用SQL脚本对数据库进行操作; 其中,所述API接口为通用的数据库操作接口,其屏蔽了不同数据库操作接口的差异,所述SQL脚本经过统一处理后通过API接口进行识别与接收。
2.根据权利要求1所述的方法,其特征在于,所述ORM框架和业务实体以链式调用的方式生成对数据库进行操作的调用命令。
3.根据权利要求1或2所述的方法,其特征在于,所述SQL脚本通过可变参数模板对其中SQL语句的参数类型进行统一处理,使处理后所有的SQL语句通过API接口进行识别与接收。
4.根据权利要求3所述的方法,其特征在于,ORM框架通过模板元结构自动解析此调用命令并生成对应的SQL脚本,其中,ORM框架将业务实体的实体字段和字段值返回给模板元结构后,模板元结构对类型不同、数量不同的实体字段进行统一解析,生成结构体字段,通过宏获取结构字段中的字段内容,并根据字段内容生成对应的SQL脚本。
5.一种面向对象中利用ORM框架实现数据库操作的系统,其特征在于,包括: 第一装置,根据ORM框架和业务实体生成对数据库进行操作的调用命令; 第二装置,框架自动解析调用命令并生成对应的SQL脚本; 第三装置,通过API接口调用SQL脚本对数据库进行操作; 其中,所述API接口为通用的数据库操作接口,其屏蔽了不同数据库操作接口的差异,所述SQL脚本经过统一处理后通过API接口进行识别与接收。
6.根据权利要求5所述的系统,其特征在于,所述ORM框架和业务实体以链式调用的方式生成对数据库进行操作的调用命令。
7.根据权利要求5或6所述的系统,其特征在于,所述SQL脚本通过可变参数模板对其中SQL语句的参数类型进行统一处理,使处理后所有的SQL语句通过API接口进行识别与接收。
8.根据权利要求7所述的系统,其特征在于,ORM框架通过模板元结构自动解析此调用命令并生成对应的SQL脚本,其中,ORM框架将业务实体的实体字段和字段值返回给模板元结构后,模板元结构对类型不同、数量不同的实体字段进行统一解析,生成结构体字段,通过宏获取结构字段中的字段内容,并根据字段内容生成对应的SQL脚本。
【文档编号】G06F17/30GK103699620SQ201310702185
【公开日】2014年4月2日 申请日期:2013年12月19日 优先权日:2013年12月19日
【发明者】祁宇, 裴大桥, 张品林, 喻大发, 曹雪山 申请人:珠海世纪鼎利通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1