一种基于数据模型驱动的代码自动生成方法和系统的制作方法

文档序号:6382591阅读:443来源:国知局
专利名称:一种基于数据模型驱动的代码自动生成方法和系统的制作方法
技术领域
本发明涉及代码生成技术领域,尤其涉及一种基于数据模型驱动的代码自动生成方法和系统。
背景技术
代码就是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。代码设计的原则包括惟一确定性、标准化和通用性、可扩充性与稳定性、便于识别与记忆、力求短小与格式统一以及容易修改等。源代码是代码的分支,某种意义上来说,源代码相当于代码。现代程序语言中,源代码可以书籍或磁带形式出现,但最为常用格式是文本文件,这种典型格式的目的是为了编译 出计算机程序。计算机源代码最终目的是将人类可读文本翻译成为计算机可执行的二进制指令,这种过程叫编译,通过编译器完成。目前,代码的编写主要靠程序员手工进行,不但费时费力,而且错误率高,不同程序员的风格还会有所区别,不利于后续的维护等。有鉴于此,现有技术有待改进和提闻。

发明内容
鉴于现有技术的不足,本发明目的在于提供一种基于数据模型驱动的代码自动生成方法和系统。旨在解决现有技术中代码编写靠程序员手工进行,而存在的费时费力、效率低下等问题。本发明的技术方案如下
一种基于数据模型驱动的代码自动生成方法,其中,包括以下步骤
51、根据用户设置,建立所述用户配置信息,所述用户配置信息包括代码生成的包名、类名、需要生成代码的主表以及所述主表的关联;
52、根据用户配置信息,系统生成事预先设定的服务端能够解析的xml文件;
53、服务端解析所述xml文件,根据代码模板,生成标准的代码。所述基于数据模型驱动的代码自动生成方法,其中,所述代码包括数据实体类、业务逻辑类、mybatis接口文件和mybatis Mapper文件。所述基于数据模型驱动的代码自动生成方法,其中,所述步骤S2中系统为32位或64位操作系统。一种基于数据模型驱动的代码自动生成系统,包括数据模型解析模块,用于根据设定不同类型的数据库引擎,通过各数据库引擎提供的接口方法程序自动连接相应的数据库,并取得指定表的描述、备注、主键,以及表的各个字段名称、类型、只读属性、备注信息,加载到系统内存,以备作为工具的树形框架的基础信息;
XML生成模块,用于从系统内存获取到表的相关信息,展现在工具主界面。通过修改属性,并在表的字段节点基础上建立从表连接,选择从表的若干属性加入到树结构中,设置完成后,通过程序内部自定义方法,将树结构转换为XML字符串,输出到XML文件上;
XML解析模块,用于当服务器接收到上传的XML文件,服务器将文件保存至临时目录,在新上传文件的文件名后面加上时间戳和随机数作为区分,通过数据流的形式把文件内容读取出来,根据内容判断是否符合代码框架定义的格式并将新的文件名以参数的形式传给JSP模版文件,以备给代码生成模块调用;
代码生成模块,用于将解析完成的业务实体类,按照定义好的四套不同模版,该实体类被四个不同的JSP页面调用,并按照其规定格式进行套取,加载到对应的结点和常量替换,从而生成初步的代码规范,而后加上注释,并对应的生成包含映射类、实体类、接口类、业务逻辑类四个文件;并根据设置的属性,添加包结构和路径,以及引用、备注、版本信息,生成4个对应的业务层代码,存放于系统的临时目录下;
代码下载模块,用于当代码生成完成后,将生成之后的服务器目录信息反馈给用户,根据选择的目录,将文件从服务器目录通过Upload插件自动下载到本地目录,并按照设置的包结构建立好了对应的文件夹。 有益效果本申请的一种基于数据模型驱动的代码自动生成方法和系统,相比现有技术,具有以下优点
一、效率提高数倍,不需要程序员手工去去编写代码,只需要操作图形界面,完成各表之间的关联配置,即可自动生成代码。二、代码规范统一;自动生成的代码规范统一由程序制定,可读性高,可维护性强。三、图形界面操作直观、方便、快捷,不易出错,降低技术要求。自动生成的代码程序员不用担心,字段编写错误,sql关联写错等常见sql脚本问题,甚至不懂代码的工作人员也能操作代码生成。


图I为本申请的一种基于数据模型驱动的代码自动生成方法的流程图。图2为本申请的一种基于数据模型驱动的代码自动生成系统的结构框图。
具体实施例方式本发明提供一种基于数据模型驱动的代码自动生成方法和系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。请参阅图1,其为本申请的基于数据模型驱动的代码自动生成方法的流程图。如图所示,所述一种基于数据模型驱动的代码自动生成方法包括以下步骤
51、根据用户设置,建立所述用户配置信息,所述用户配置信息包括代码生成的包名、类名、需要生成代码的主表以及所述主表的关联;
52、根据用户配置信息,系统生成事预先设定的服务端能够解析的xml文件;
53、服务端解析所述xml文件,根据代码模板,生成标准的代码。下面分别针对上述步骤进行详细描述。所述步骤SI为根据用户设置,建立所述用户配置信息,所述用户配置信息包括代码生成的包名、类名、需要生成代码的主表以及所述主表的关联。在本实施例中,代码自动生成技术采用net+xml+jsp模板实现。步骤S2是根据用户配置信息,系统生成事预先设定的服务端能够解析的xml文件。最后,步骤S3,服务端解析所述xml文件,根据代码模板,生成标准的代码。进一步地,所述代码可以包括数据实体类、业务逻辑类、mybatis接口文件和mybatis Mapper文件。另外,所述步骤S2中系统为32位或64位操作系统。本申请还提供了一种基于数据模型驱动的代码自动生成系统,如图2所示,其包括数据模型解析模块100,用于根据设定不同类型的数据库引擎,通过各数据库引擎提供的接口方法程序自动连接相应的数据库,并取得指定表的描述、备注、主键,以及表的各个字段名称、类型、只读属性、备注信息,加载到系统内存,以备作为工具的树形框架的基础信息;其关键在于,连接数据库引擎需根据使用者的系统,做到兼容32位和64位操作系统。
XML生成模块200,用于从系统内存获取到表的相关信息,展现在工具主界面。通过修改属性,并在表的字段节点基础上建立从表连接,选择从表的若干属性加入到树结构中,设置完成后,通过程序内部自定义方法,将树结构转换为XML字符串,输出到XML文件上;其中,可建立多个字段子表结构,但一个字段不可连接多个子表。子表对应的属性可再连接第三级从表,获得第三级从表的相关属性。本模块最多支持三级子表。XML解析模块300,用于当服务器接收到上传的XML文件,服务器将文件保存至临时目录,在新上传文件的文件名后面加上时间戳和随机数作为区分,通过数据流的形式把文件内容读取出来,根据内容判断是否符合代码框架定义的格式并将新的文件名以参数的形式传给JSP模版文件,以备给代码生成模块调用;JSP页面通过GET请求,接收到从后台传过来的需要解析的XML文件。JSP页面直接通过调用后台方法将文件直接通过XML解析器转换为一个实体对象。代码生成模块400,用于将解析完成的业务实体类,按照定义好的四套不同模版,该实体类被四个不同的JSP页面调用,并按照其规定格式进行套取,加载到对应的结点和常量替换,从而生成初步的代码规范,而后加上注释,并对应的生成包含映射类、实体类、接口类、业务逻辑类四个文件;并根据设置的属性,添加包结构和路径,以及引用、备注、版本等信息,生成4个对应的业务层代码,存放于系统的临时目录下。代码下载模块500,用于当代码生成完成后,将生成之后的服务器目录信息反馈给用户,根据选择的目录,将文件从服务器目录通过Upload插件自动下载到本地目录,并按照设置的包结构建立好了对应的文件夹,以便可以直接在工程的根目录直接覆盖,在编译器中直接可以编译通过而不需要修改任何代码,整套代码规范而有序,便于阅读。其中,XML文件的节点结构与数结构相仿businessMap为根节点,包含主表的主键、对应的表名、地区分表等信息。其对应的字段属性包含在items节点中,一个item对应一个字段,属性包括字段名、字段类型、只读属性、原表字段和字段描述信息等。如果某字段建立了从表,那么在该字段对应节点紧随其后的是joinOneltem节点,属性包含从表的表名、连接方式、对应主键和外键等信息。从表的属性包含在该节点之内的子节点中,属性与主表字段属性一致。XML文件生成可保存,也可直接通过程序上传至JSP服务器做解析。综上所述,本发明的一种基于数据模型驱动的代码自动生成方法和系统,其中,所述方法中,首先,根据用户设置,建立所述用户配置信息,所述用户配置信息包括代码生成的包名、类名、需要生成代码的主表以及所述主表的关联;然后,根据用户配置信息,系统生成事预先设定的服务端能够解析的xml文件;最后,服务端解析所述xml文件,根据代码模板,生成标准的代码。与现有技术相比,其具有效率高、代码规范统一、可读性高、可维护性强等优点,同时,操作直观、方便、快 捷,不易出错,降低了技术要求。应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
权利要求
1.一种基于数据模型驱动的代码自动生成方法,其特征在于,包括以下步骤 51、根据用户设置,建立所述用户配置信息,所述用户配置信息包括代码生成的包名、类名、需要生成代码的主表以及所述主表的关联; 52、根据用户配置信息,系统生成事预先设定的服务端能够解析的xml文件; 53、服务端解析所述xml文件,根据代码模板,生成标准的代码。
2.根据权利要求I所述的基于数据模型驱动的代码自动生成方法,其特征在于,所述代码包括数据实体类、业务逻辑类、mybatis接口文件和mybatis Mapper文件。
3.根据权利要求I所述的基于数据模型驱动的代码自动生成方法,其特征在于,所述步骤S2中系统为32位或64位操作系统。
4.一种基于数据模型驱动的代码自动生成系统,其特征在于,包括数据模型解析模块,用于根据设定不同类型的数据库引擎,通过各数据库引擎提供的接口方法程序自动连接相应的数据库,并取得指定表的描述、备注、主键,以及表的各个字段名称、类型、只读属性、备注信息,加载到系统内存,以备作为工具的树形框架的基础信息; XML生成模块,用于从系统内存获取到表的相关信息,展现在工具主界面; 通过修改属性,并在表的字段节点基础上建立从表连接,选择从表的若干属性加入到树结构中,设置完成后,通过程序内部自定义方法,将树结构转换为XML字符串,输出到XML文件上; XML解析模块,用于当服务器接收到上传的XML文件,服务器将文件保存至临时目录,在新上传文件的文件名后面加上时间戳和随机数作为区分,通过数据流的形式把文件内容读取出来,根据内容判断是否符合代码框架定义的格式并将新的文件名以参数的形式传给JSP模版文件,以备给代码生成模块调用; 代码生成模块,用于将解析完成的业务实体类,按照定义好的四套不同模版,该实体类被四个不同的JSP页面调用,并按照其规定格式进行套取,加载到对应的结点和常量替换,从而生成初步的代码规范,而后加上注释,并对应的生成包含映射类、实体类、接口类、业务逻辑类四个文件;并根据设置的属性,添加包结构和路径,以及引用、备注、版本信息,生成4个对应的业务层代码,存放于系统的临时目录下; 代码下载模块,用于当代码生成完成后,将生成之后的服务器目录信息反馈给用户,根据选择的目录,将文件从服务器目录通过Upload插件自动下载到本地目录,并按照设置的包结构建立好了对应的文件夹。
全文摘要
本发明公开了一种基于数据模型驱动的代码自动生成方法和系统,其中,所述方法中,首先,根据用户设置,建立所述用户配置信息,所述用户配置信息包括代码生成的包名、类名、需要生成代码的主表以及所述主表的关联;然后,根据用户配置信息,系统生成事预先设定的服务端能够解析的xml文件;最后,服务端解析所述xml文件,根据代码模板,生成标准的代码。与现有技术相比,其具有效率高、代码规范统一、可读性高、可维护性强等优点,同时,操作直观、方便、快捷,不易出错,降低了技术要求。
文档编号G06F9/44GK102968306SQ20121049795
公开日2013年3月13日 申请日期2012年11月29日 优先权日2012年11月29日
发明者陈炽昌, 敖汉鹤, 孙友华, 林汉升 申请人:广东全通教育股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1