一种基于业务建模的对象查询方法与流程

文档序号:17441112发布日期:2019-04-17 04:46阅读:259来源:国知局
本发明属于计算机软件开发
技术领域
:,特别是应用java技术开发web应用领域,具体涉及一种基于业务建模的对象查询方法。
背景技术
::业务建模指的是信息系统中对业务过程中涉及的实体对象一种信息化表示的方法。主要是建立实体对象,对象属性,对象之间的关系的信息。业务建模中模的指的是模型,模型指的是信息系统中表示的业务过程中涉及的实体对象,例如,制造型企业业务过程中涉及的部件,图文档,工程更改单等。目前,基于java技术开发的web方式的业务系统中,一般采用模型-控制器-视图(mvc)架构模式,模型层多采用hibernate技术实现,采用普通java对象定义业务模型,xml映射文件定义对象到关系数据库的映射,将映射文件通过工具生成数据库schema。这种方式是采用硬编码方式建模。这样的条件下,对象的查询功能也是硬编码的,查询界面的开发必须依赖模型定义的字段信息,如果模型信息涉及字段修改,必须进行相关的模型和查询界面代码修改,难以满足业务系统的动态扩展要求。传统的对象查询方法为,根据模型的字段信息硬编码查询页面,输入查询条件后,根据固定的查询字段和关键字进行数据库查询。这种方式灵活性较差,如果模型变动,包括字段的增删改,都需要调整查询页面和后台查询逻辑,适应性比较差。技术实现要素:发明目的:本发明旨在提出一种灵活可扩展的对象查询方法,解决上述现有技术存在的不足。为此,本发明提供一种基于业务建模的对象查询方法。本发明中的对象查询方法,建立在业务对象建模的基础上,业务对象建模提供了模型和属性的动态修改能力,从而增加了模型的灵活性,在此基础上对象查询页面根据模型信息动态生成,不同的属性根据数据类型不同生成不同的查询条件输入方式,录入查询条件提交后,后台业务逻辑处理模块,根据模型信息和查询关键字构造hql或者原生sql查询条件,借助hibernate框架实现查询功能。此方法可以保证模型变化后,不需要硬编码就完成了对象查询功能的随需变化,增强了灵活性。技术方案:一种基于业务建模的对象查询方法,包括:(1):业务建模定义模型和模型的属性信息,并将模型和模型的属性信息转换为hibernate映射文件,完成后进入步骤(2);(2):动态生成查询界面配置模型属性的界面展示控件,动态生成查询页面,完成后进入步骤(3);(3):生成查询语句并执行查询根据用户录入的查询条件,结合模型信息生成查询语句,执行查询。进一步地,步骤(1)中的模型包括普通模型和组合模型,其中:普通模型对应业务系统的对象;组合模型表示特定业务含义的属性的集合。更进一步地,普通模型能引用一个或者多个组合模型,普通模型能引用其它的普通模型,来表达对象之间的引用关系,模型关联属性体现为三种方式:模型直接引用的属性、模型通过引用组合模型间接引用的属性、引用的其它普通模型作为关联属性。进一步地,步骤(1)中转换为hibernate映射文件包括以下步骤:(11)定义通用模型类commonobject,通用模型是在开发阶段完成,固化到系统中,此通用模型为所有业务建模的父类;(12)在通用模型类commonobject中定义一个map的数据结构作为属性容器,用来存储模型的属性,用来支持属性的扩展特性;(13)定义一个模型类objectreference用来表示引用对象;(14)制定转换规则实现模型及模型的属性信息到hibernate映射文件的转换。进一步地,步骤(2)中,在配置模型属性的界面展示控件时,配置的内容包括三个部分:控件类型、初始化来源和输入限制。进一步地,步骤(2)中,查询界面生成时,采用已经定义的html界面模板,html界面模板中已定义好界面的整体布局,结合模型属性信息,生成查询条件,填充到模板的特定位置,其中:查询条件包括字段、操作符、输入参数三部分。更进一步地,查询条件之间为与(and)关系或者或(or)关系。进一步地,步骤(3)中,生成查询语句并执行查询包括:(31)查询条件的表单提交到处理逻辑时,结合字段,操作符和输入参数建立查询条件,其中:多条件的查询条件为与关系或者或关系;(32)构建hql语句或者原始sql语句,利用hibernate框架提供的查询接口执行查询。有益效果:本发明公开的一种基于业务建模的对象查询方法具有以下有益效果:1、更加灵活——保证模型变化后,不需要硬编码就完成了对象查询功能的随需变化,增强了灵活性;2、适用范围广。附图说明图1表示本发明实施例的一种基于业务建模的对象查询方法的流程图。具体实施方式:下面对本发明的具体实施方式详细说明。为了便于理解,下面对几个本领域的名词作一下解释:属性:信息系统中实体对象的特征信息,即描述实体对象具备哪些特征,采用实体对象中的字段进行说明。例如,描述部件模型时,需要用到编号,名称,生产厂商等字段进行说明;hibernate:即对象关系映射框架,其是一个开放源代码的对象关系映射框架,它对jdbc进行了非常轻量级的对象封装,它将java对象与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成sql语句,自动执行,使得java程序员使用对象编程思维来操纵数据库;hql:hibernate框架支持的一种对象查询语言,hibernatequerylanguage的缩写,对查询条件进行了面向对象封装,提供更加丰富灵活、更为强大的查询能力,hql更接近sql语句查询语法;sql:结构化查询语言(structuredquerylanguage),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。本发明利用业务建模功能作为基础,实现了一种灵活易扩展的对象查询方法,具体方案如下:一种基于业务建模的对象查询方法,包括以下三个步骤:(1)业务建模:定义模型和模型的属性信息,并将其转换为hibernate映射文件;(2)动态生成查询界面配置模型属性的界面展示控件,动态生成查询页面;(3)生成查询语句执行查询:根据用户录入的查询条件,结合模型信息生成查询语句,执行查询。进一步地,步骤(1)业务建模包括以下部分:1)模型和属性定义:模型包括普通模型和组合模型,普通模型对应业务系统的对象,组合模型表示特定业务含义的属性的集合。普通模型可以引用一个或者多个组合模型。普通模型可以引用其它的普通模型,来表达对象之间的引用关系。模型包括标识,名称,数据库表名,描述等必须信息。属性包括名称,标识,数据库表的列名,数据类型(包括字符型,整型,实型,布尔型,日期型,枚举型),数据长度,描述等信息。模型关联属性体现为三种方式:模型直接引用的属性,模型通过引用组合模型间接引用的属性,引用的其它普通模型作为关联属性。一个具体模型的实例如下所示:模型标识:part,模型名称:部件,数据库表:plm_part_part属性列表:1)唯一标识innerid字符型长度:1272)模型标识classid字符型长度:1273)名称name字符型长度:2554)编号number字符型长度:2555)默认单位defaultunit字符型长度:2556)默认单位名称defaultunitname字符型长度:2557)跟踪方式tracetype字符型长度:638)是否主成品mainenditem布尔型9)数量amount整型长度:510)重量weight实型长度:5,211)更新时间updatetime日期型12)版本(组合模型)iterationinfo13)创建人(引用模型)createby模型标识:iterationinfo,模型名称:版本信息属性列表:1)大版本号versionno字符型长度:2552)小版本号iterationno字符型长度:255其它略模型标识:user,模型名称:人员信息,数据库表:plm_user属性列表:1)唯一标识innerid字符型长度:1272)模型标识classid字符型长度:127其它略进一步地,步骤(1)中模型及其属性信息转换为hibernate映射文件,包括以下步骤:(11)首先定义通用模型类commonobject,通用模型是在开发阶段完成,固化到系统中,此模型为所有业务建模的父类;(12)通用模型类commonobject中定义一个map的数据结构作为属性容器,用来存储模型的属性,用来支持属性的扩展特性,hibernate映射文件中利用dynamic-component标签进行支持属性容器;(13)定义一个模型类objectreference用来表示引用对象,此引用对象只记录对象的模型标识和对象主键标识,用来表示模型引用了其它模型作为自己属性的情况;(14)hibernate映射文件中利用component标签进行支持引用对象。模型转换规则:模型标识转换后对应entity-name元素;模型的类名对应为通用模型的类名即commonobject,模型的表名对应table属性。模型直接引用的属性的转换规则:主键唯一标识对应的数据类型为字符串;普通属性转换为property元素;属性标识对应name属性,数据类型对应type属性,数据长度对应length属性;数据库列名对应column属性;数据类型的转换对应关系如下(即转换后type属性的值):字符型对应type="string";整型对应type="int";实型对应type="double";布尔型对应type="boolean";日期型对应type="timestamp";枚举型对应hibernate的org.hibernate.type.enumtype。模型通过引用组合模型间接引用的属性的转换规则:引用属性与component元素对应,转换后的格式类似如下;元素name属性的值为引用属性标识加ref后缀,class为固定的值objectreference;component元素下只包含固定的两个property子元素,分别对应对象主键标识innerid和模型标识classid。引用组合模型的转换规则:通过组合模型的定义查找到其引用的属性,转换规则同模型直接引用的属性。一个具体转换成hibernate映射文件的模型如下所示:利用hibernate框架自带的ddl工具生成和更新数据库表。进一步地,步骤(2)动态生成查询界面包括以下部分:1)模型属性界面展示控件配置配置的内容包括三个部分:控件类型:包括文本框,下拉框,复选框,文本域等html支持的控件。配置时应结合数据类型由用户确定。初始化值来源:可来源于其它数据库表,xml文件,自定义的数据字典等。输入限制:包括输入格式,数值范围,特殊字符等约束。2)动态生成查询界面界面生成时,采用已经定义的html界面模板,模板中已定义好界面的整体布局,结合模型属性信息,生成查询条件,填充到模板的特定位置,查询条件包括字段,操作符,输入参数三部分,各种类型字段对应的值为:(1)字符串型(操作符为包含,不包含,等于,不等于,是否大小写敏感,输入参数来自于用户输入);(2)数值型含整型和实型(操作符为大于,小于,等于,不大于,不小于,不等于,介于两个值之间,输入参数来自于用户输入);(3)布尔型(操作符为等于,输入值固定为是或者否,由用户选择)。(4)日期型(操作符为介于两个时间值之间,起止时间允许为空);(5)枚举型(操作符为等于,不等于,包括,不包括,输入来自枚举值范围,由用户选择)。(6)引用型(操作符为等于,不等于,输入参数来自于被引用的模型,由用户选择);字段之间的条件关系:与:表示该条件与其它调试是“与”关系;或:表示该条件与其它调试是“或”关系。查询的时候,可以根据应用的需求,并不需要对所有字段进行查询,可以提供默认查询字段,并根据模型属性信息动态增加字段,增加后的字段生成界面的方式同上所述。进一步地,步骤(3)生成查询语句执行查询包括以下步骤:(31)查询条件的表单提交到处理逻辑时,结合字段,操作符和输入参数建立查询条件,多条件用“与”或者“或”连接;(32)构建hql语句或者原始sql语句,利用hibernate框架提供的查询接口执行查询。构建hql或者sql语句时,查询的目标对象来源于模型标识信息,查询条件的对象字段来源于模型属性标识,操作符对应关系如表1所示:表1:界面操作符合hql操作符的对应表界面操作符对应的hql操作符等于=不等于!=或<>包含like不包含notlike不大于<=不小于>=包括in不包括notin介于两个值之间between特别的,对于引用其它模型的情况,查询条件的构建方法为:用户选择到的引用对象时,传入对象的唯一标示;根据引用模型的转换规则,字段值限定为:属性标识+ref.innerid。依据此方法实现的对象查询功能,在业务模型发生变化时,对模型进行更新,然后查询界面能实现动态更新,查询功能更加灵活,适应性增强,快速满足业务需求。上面对本发明的实施方式做了详细说明。但是本发明并不限于上述实施方式,在所属
技术领域
:普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1