CN113032393A - 一种绑定关联对象的方法和装置 - Google Patents

一种绑定关联对象的方法和装置 Download PDF

Info

Publication number
CN113032393A
CN113032393A CN202110240964.3A CN202110240964A CN113032393A CN 113032393 A CN113032393 A CN 113032393A CN 202110240964 A CN202110240964 A CN 202110240964A CN 113032393 A CN113032393 A CN 113032393A
Authority
CN
China
Prior art keywords
name
bound
data table
annotation
column
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
CN202110240964.3A
Other languages
English (en)
Other versions
CN113032393B (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.)
Suzhou Dibo Information Technology Co ltd
Original Assignee
Suzhou Dibo Information 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 Suzhou Dibo Information Technology Co ltd filed Critical Suzhou Dibo Information Technology Co ltd
Publication of CN113032393A publication Critical patent/CN113032393A/zh
Application granted granted Critical
Publication of CN113032393B publication Critical patent/CN113032393B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • 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/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding

Abstract

本发明提供了一种绑定关联对象的方法和装置。所述方法包括:自定义待绑定对象的注解并声明该注解的配置参数,声明待绑定主对象及其属性和从对象及其属性与数据库中的数据表及其列的映射关系;获得该待绑定从对象在数据库中的数据表名;获得所述主对象的数据表的列名所对应的属性名和待绑定从对象在数据库中对应的数据表的列名;获得该主对象的属性值并作为查询输入参数值,基于关联条件和外键约束规则能够查询到该待绑定从对象的在对应所述数据表名的数据表中的列值匹配于该查询输入参数值的相应列的全部记录信息,利用反射机制将查询结果赋值给所述主对象中注解对应的属性以实现对关联对象的绑定。

Description

一种绑定关联对象的方法和装置
技术领域
本发明涉及计算机技术领域,具体而言涉及一种绑定关联对象的方法和装置。
背景技术
在软件开发过程中离不开进行对象关联的处理,尤其在进行SQL查询时,往往涉及到跨表查询,这就更需要进行对象关联的处理,即对关联对象进行绑定。以公司的人事档案电子化管理为例子进行说明。员工需要和部门、档案、员工履历等信息相关联,即在employee(员工)对象与department(部门)对象、profile(员工档案)、work experience(员工履历)等对象有关联关系。为了数据管理方便,在建立数据库表时往往会建立多个表,例如employee表、department表、profile表、work_experience表。当在执行前端UI界面的数据显示和处理时,需要把对象数据及其关联对象的数据进行绑定在一起,通过一个接口提供数据给前端UI界面。
对于上述的应用实例,现有的处理方法是对employee(员工)对象接口的关联对象(department(部门)对象、profile(员工档案)、work experience(员工履历)等)存储于不同的数据库表,这就需要开发人员将所有相关的数据查询出来,然后将结果逐个进行绑定。继续举例,前端UI界面需要提供“员工”列表查看功能,其中“所属部门”这一列需要显示的是部门的名称。如表1所示:
姓名 生日 所属部门
张三 1987-09-16 研发部
李四 1992-03-15 财务部
表1
这个UI界面需要的接口数据,以json格式为例是以下这种结构:
Figure BDA0002962134550000021
其中departmentName:所属部门,取值来自department表的name字段。而数据库的存储结构一般是:department表中存储的是id(部门id)、name(部门名称)等字段。
在employee表中存储的是id(员工id)、name(姓名)、birthdate(生日)、department_id(部门id)。其中这个department_id是外键关联到department表的id,作为前端显示时需要转换成name(部门名称)。参见以下示例表:
id name birthdate department_id
1 张三 1987-09-16 101
2 李四 1992-03-15 102
employee表的示例
id name
101 研发部
102 财务部
department表的示例
通过这个简单的对象关联的应用场景可知,需要开发人员手写大量的SQL语句来实现对象的关联或绑定。当在UI界面上显示employee(员工)对象的详情页面时,该详情页面除了展示上述的基本信息外,往往还会展示或提供查看员工的更多其他信息,例如“员工档案”(表employee_profile,包含employee_id列关联至employee表)、“工作履历”(表work_experience,包含employee_id列关联至employee表)。
针对类似这种跨表关联对象的绑定场景,需要开发人员手写大量的SQL语句来完成目的。现有的关联对象的绑定方法具有以下缺点:
1、书写SQL语句的工作量大且很复杂,代码编写的难度大、门槛高;
2、开发人员在书写代码的过程中极易出错,产生bug;
3、复杂的关联性使得执行查询的效率低、容易带来软件性能上的负面影响。
发明内容
本发明的目的在于提供一种绑定关联对象的方法和装置,以改善上述问题。
本发明的第一实施例提供了一种绑定关联对象的方法,包括:
自定义待绑定对象的注解并声明该注解的配置参数,该配置参数包括但不限于:该注解使用的范围、该注解的生命周期、该注解的继承、待绑定的从对象的类、关联条件、绑定字段;
声明待绑定主对象及其属性和从对象及其属性与数据库中的数据表及其列的映射关系;
基于命名映射规则,利用注解中的待绑定从对象的实体类名来得到该待绑定从对象在数据库中的数据表名,或者通过@Table注解获得指定的该待绑定从对象在数据库中的数据表名;
对注解中的关联条件进行解析以得到关联条件中的主对象在数据库中对应的数据表的列名,基于命名映射规则得到所述主对象的数据表的列名所对应的属性名和待绑定从对象在数据库中对应的数据表的列名;
基于得到的所述主对象的数据表的列名所对应的属性名,通过反射机制得到该主对象的属性值;
基于得到的待绑定从对象在数据库中的数据表名和列名,将得到所述主对象的属性值作为查询输入参数值,基于关联条件和外键约束规则能够查询到该待绑定从对象的在对应所述数据表名的数据表中的列值匹配于该查询输入参数值的相应列的全部记录信息,利用反射机制将查询结果赋值给所述主对象中注解对应的属性以实现对关联对象的绑定。
其中,所述映射关系包括但不限于:主键、外键、列和字段的映射关系。
其中,所述关联条件是从对象的实体类名或某个属性字段。
其中,当查询的匹配列值归属于从对象的多个数据表时,先将查询的全部记录信息转换为从对象的数据集合,再通过反射机制将将该数据集合赋值给所述主对象中注解对应的属性以实现对关联对象的绑定。
本发明的第二实施例提供了一种绑定关联对象的装置,其包括:
注解定义模块,用于自定义待绑定对象的注解并声明该注解的配置参数,该配置参数包括但不限于:该注解使用的范围、该注解的生命周期、该注解的继承、待绑定的从对象的类、关联条件、绑定字段;
声明模块,用于声明待绑定主对象及其属性和从对象及其属性与数据库中的数据表及其列的映射关系;
数据处理模块,用于基于命名映射规则,利用注解中的待绑定从对象的实体类名来得到该待绑定从对象在数据库中的数据表名,或者通过@Table注解获得指定的该待绑定从对象在数据库中的数据表名;对注解中的关联条件进行解析以得到关联条件中的主对象在数据库中对应的数据表的列名,基于命名映射规则得到所述主对象的数据表的列名所对应的属性名和待绑定从对象在数据库中对应的数据表的列名;基于得到的所述主对象的数据表的列名所对应的属性名,通过反射机制得到该主对象的属性值;
绑定执行模块,用于基于得到的待绑定从对象在数据库中的数据表名和列名,将得到所述主对象的属性值作为查询输入参数值,基于关联条件和外键约束规则能够查询到该待绑定从对象的在对应所述数据表名的数据表中的列值匹配于该查询输入参数值的相应列的全部记录信息,利用反射机制将查询结果赋值给所述主对象中注解对应的属性以实现对关联对象的绑定。
其中,所述映射关系包括但不限于:主键、外键、列和字段的映射关系。
其中,所述关联条件是从对象的实体类名或某个属性字段。
其中,所述绑定执行模块工作时,当查询的匹配列值归属于从对象的多个数据表时,先将查询的全部记录信息转换为从对象的数据集合,再通过反射机制将将该数据集合赋值给所述主对象中注解对应的属性以实现对关联对象的绑定。
根据本发明提供的一种绑定关联对象的方法和装置,其能够带来的优点:1、通过注解声明对象间的关联方式,开发人员仅需要关注对象间的关联条件,极大地降低了开发难度。
2、该方法对比传统的对象关联场景的SQL代码编写,大大减少了SQL的代码量,使得代码出错率更低,更容易维护。
3、因该方法的实现是将复杂关联查询拆解为多个简单查询,可以让缓存效率更高,有效减少锁竞争。
4、同时在应用层做关联,可以更容易对数据库进行拆分,更容易做到高性能和可扩展。
附图说明
图1是本发明第一实施例提供的绑定关联对象的方法的流程图;
图2是本发明第二实施例提供的绑定关联对象的装置的示意性框图。
具体实施方式
下面将结合具体实施例和附图,对本发明提出的技术方案进行清楚、完整地描述,显然所描述的示例性实施例仅仅出于说明目的而非限定。
为了改善上述的技术问题,本申请的发明人想到了利用注解功能来实现相关联的主对象和从对象之间的绑定。
相关术语:
实体类:与数据库表定义对应的类,其中类名映射到表名,类中的属性名映射到表中的列名。
命名映射规则:一般数据库表列名与实体的类名属性名命名之间有固定的映射规则,如驼峰式命名转换为小写下划线的蛇形命名,WorkExperience映射为work_experience。
主对象和从对象:一般将主表对应的对象称之为“主对象”,与主表关联的从表对应的对象称之为“从对象”。
主键:能确定一条记录的唯一标识。
外键:用于与另一张表的关联,是能确定另一张表记录的字段,用于保持数据的一致性。
图1是本发明第一实施例提供的绑定关联对象的方法的流程图。如图1所示,本发明第一实施例提供的一种绑定关联对象的方法包括:
S1:自定义待绑定对象的注解并声明该注解的配置参数,该配置参数包括但不限于:该注解使用的范围、该注解的生命周期、该注解的继承、待绑定的从对象的类、关联条件、绑定字段。
注解是从Java 1.5引入的,目前已被广泛应用于各种Java框架,如Hibernate,Jersey,Spring。注解相当于是一种嵌入在程序中的元数据,可以使用注解解析工具或编译器对其进行解析,也可以指定注解在编译期或运行期有效。Java注解能够提供代码的相关信息,同时对于所注解的代码结构又没有直接影响。
在代码编写过程中,使用注解功能之前需要先自定义注解和声明注解的配置参数。在本发明里,自定义待绑定对象的注解并声明该注解的配置参数,该配置参数包括但不限于:该注解使用的范围、该注解的生命周期、该注解的继承、待绑定的从对象的类、关联条件、绑定字段。其中:
使用@Target声明注解使用的范围,使用@Retention声明注解的生命周期,使用@Inherited声明注解的继承。另外,还可以使用@Document声明注解是由javadoc来记录。
另外,可以使用Class entity()声明待绑定的从对象的类,使用Stringcondition()声明关联条件,使用String condition()声明绑定字段。
下面提供一个实例来说明定义一个注解。
Figure BDA0002962134550000061
S2:声明待绑定主对象及其属性和从对象及其属性与数据库中的数据表及其列的映射关系。
现在的编程方法都是面向对象的编程,所有的值、操作都是基于对象的概念,而数据库还是关系数据库,因此需要在对象和数据库之间建立映射关系,即对象关系映射。
另外,在进行SQL查询时,当数据库中表与表之间有关联时,在对数据库进行操作时,就不只是针对某一张表了,需要联表查询或跨表查询,因此也需要在多表之间建立映射关系。
所述映射关系包括但不限于:主键、外键、列和字段的映射关系。其中主键和外键的用途就是在多表之间建立映射关系。
主键是能确定一条记录的唯一标识,其不能有重复的,也不允许为空,且只能有一个主键。比如,一条记录包括身份证号、姓名、年龄。身份证号是能确定这个人的唯一标识,其他都可能有重复,所以身份证号可以是主键,或者也可以指定一个唯一ID作为主键。
外键是能确定另一张表记录的字段,用于保持数据的一致性,其可以有重复的,一个表可以有多个外键,外键用于和其他表建立关联。
如果一个字段X在一张表(表1)中是主关键字(主键),而在另外一张表(表2)中不是主关键字(主键),则字段X称为表2的外键。
关于建立和声明上述的映射关系,可以采用公知技术。更具体的,建立涉及主键、外键、列和字段等方面的映射关系,例如可以通过@TableId、@Column注解标识所述的映射关系,这对于本领域技术人员来说是容易做到的,这里不再举例和赘述。
S3:基于命名映射规则,利用注解中的待绑定从对象的实体类名来得到该待绑定从对象在数据库中的数据表名,或者通过@Table注解获得指定的该待绑定从对象在数据库中的数据表名。
一般情况下,数据库表列名与实体的类名属性名命名之间有固定的映射规则,如驼峰式命名转换为小写下划线的蛇形命名,WorkExperience映射为work_experience。此时,基于命名映射规则,就能够利用注解中的待绑定从对象的实体类名来得到该待绑定从对象在数据库中的数据表名,例如注解中的待绑定从对象的实体类名是WorkExperience,利用骆峰式命名法规则,可以知道该待绑定从对象在数据库中的数据表名为work_experience。但在某些场景下,编程人员有可能没有按命名映射规则对从对象的实体类名和在数据库中的数据表名进行命名,或者说,从对象的实体类名和在数据库中的数据表名进行命名不符合命名映射规则,此时可以通过@Table注解获得指定的该待绑定从对象在数据库中的数据表名。
S4:对注解中的关联条件进行解析以得到关联条件中的主对象在数据库中对应的数据表的列名,基于命名映射规则得到所述主对象的数据表的列名所对应的属性名和待绑定从对象在数据库中对应的数据表的列名。例如注解中的待绑定从对象的属性名是departmentId,利用骆峰式命名法规则,可以知道该待绑定从对象在数据库中的数据表的列名为department_id。
所述关联条件是从对象的实体类名或某个属性字段。举一个例程进行说明。
Figure BDA0002962134550000081
所述关联条件可以是部门名称、员工档案、员工履历等,其中从对象的实体类名例如是EmployeeProfile,从对象的属性字段例如是department_id。
对注解中的关联条件进行解析,在这个例程里,例如已知@BindEntity(entity=EmployeeProfile.class,condition=”this.id=employee_id”),通过注解中的关联条件entity=EmployeeProfile.class,基于命名映射规则可以得知待绑定从对象的实体类是EmployeeProfile。通过注解定义中的condition="this.id=employee_id"(为了便于区分主对象列还是从对象列,可以给主对象列添加this.前缀),可以解析出关联条件中的主对象在数据库中对应的数据表的列名是id,基于命名映射规则,可以得到所述主对象的数据表的列名所对应的属性名是id字段,以及待绑定从对象在数据库中对应的数据表的列名employee_id。
S5:基于得到的所述主对象的数据表的列名所对应的属性名,通过反射机制得到该主对象的属性值。
继续上面的例子,基于得到的所述主对象的数据表的列名所对应的属性名,即id字段记录的信息,通过反射机制得到该主对象的属性值,例如借助Spring方法,
BeanWrapper wrapper=PropertyAccessorFactory.forBeanPropertyAccess(employeeVO);
return wrapper.getPropertyValue(“id”)。
S6:基于得到的待绑定从对象在数据库中的数据表名和列名,将得到所述主对象的属性值作为查询输入参数值,基于关联条件和外键约束规则能够查询到该待绑定从对象的在对应所述数据表名的数据表中的列值匹配于该查询输入参数值的相应列的全部记录信息,利用反射机制将查询结果赋值给所述主对象中注解对应的属性以实现对关联对象的绑定。
先介绍一下外键约束规则,即具有关联关系的两个表之间需要满足:一张表的外键是另一张表的主键,且外键值与主键值匹配。
在使用上,从表数据依赖于主表,主表含有主键,从表含有外键,主表可用于存储主要信息,如客户资料(客户编号,客户名称,客户公司,客户单位等),从表用来存储客户扩展信息(客户订单信息,客户地址信息,客户联系方式信息等)。
由于前面介绍的可知,所述主对象的属性值在主表中是主键,又是从表中的外键,即所述主对象的属性值与从对象的属性值相同,这样基于所得到的待绑定从对象在数据库中的数据表名和列名,将得到所述主对象的属性值作为查询输入参数值,基于关联条件和外键约束规则能够查询到该待绑定从对象的在对应所述数据表名的数据表中的列值匹配于该查询输入参数值的相应列的全部记录信息。
继续上面的例子,假设所述主对象的属性值为1,则将1作为输入参数值,基于得到的待绑定从对象在数据库中的数据表名employee_profile和列名employee_id就能查询该待绑定从对象的在对应所述数据表名的数据表中的employee_id列值等于1的全部记录信息,即员工档案对象数据。
再利用反射机制将查询结果赋值给所述主对象中注解对应的属性以实现对关联对象的绑定。也就是说,通过反射机制,将查询到的employee_id为1的员工档案对象数据赋值给所述主对象中注解对应的属性,这样就实现了主对象和关联的从对象之间的绑定。
在实际编程过程中,在赋值之前,需要将数据库的对象数据格式转换为Java对象EmployeeProfile,再通过反射机制将EmployeeProfile的员工档案对象数据赋值给该注解对应的属性employeeProfile。如借助Spring:
BeanWrapper wrapper=PropertyAccessorFactory.forBeanPropertyAccess(employeeVO);
wrapper.setPropertyValue(“employeeProfile”,employeeProfile)。
在一个优选实施例中,当查询的匹配列值归属于从对象的多个数据表时,先将查询的全部记录信息转换为从对象的数据集合,再通过反射机制将该数据集合赋值给所述主对象中注解对应的属性以实现对关联对象的绑定。
在上面示例的例程中,workExperienceList属性上有@BindEntityList注解:
@BindEntityList(entity=WorkExperience.class,condition=”this.id=employee_id”)。
关联条件是:WorkExperience,执行上述步骤S3-S6,可以得到work_experience表全部的工作履历数据,将其转换为Java对象集合List<WorkExperience>,再通过反射机制将List<WorkExperience>的工作履历对象数据赋值给该注解对应的属性workExperienceList,例如借助Spring:
BeanWrapper wrapper=PropertyAccessorFactory.forBeanPropertyAccess(employeeVO);
wrapper.setPropertyValue(“workExperienceList”,workExperienceList)。
下面也通过示例来说明关联条件是从对象的某个属性字段情况的绑定过程。
在上面示例的例程中,departmentName属性上有@BindEntityList注解:
@BindField(entity=Department.class,condition=”this.department_id=id”,field=”name”)
关联条件是:Department,执行上述步骤S3-S6,可以得到departmentId字段记录的部门名称,假设为“研发部”,并通过查询得到name为“研发部”的全部记录数据,再通过反射机制将”研发部”的数据赋值给departmentName属性,例如:
BeanWrapper wrapper=PropertyAccessorFactory.forBeanPropertyAccess(employeeVO);
wrapper.setPropertyValue(“departmentName”,departmentName)。
根据本发明提供的一种绑定关联对象的方法,其能够带来的优点:
1、通过注解声明对象间的关联方式,开发人员仅需要关注对象间的关联条件,极大地降低了开发难度。
2、该方法对比传统的对象关联场景的SQL代码编写,大大减少了SQL的代码量,使得代码出错率更低,更容易维护。
3、因该方法的实现是将复杂关联查询拆解为多个简单查询,可以让缓存效率更高,有效减少锁竞争。
4、同时在应用层做关联,可以更容易对数据库进行拆分,更容易做到高性能和可扩展。
图2是本发明第二实施例提供的绑定关联对象的装置的示意性框图。如图2所示,本发明第二实施例提供的绑定关联对象的装置包括:
注解定义模块1,用于自定义待绑定对象的注解并声明该注解的配置参数,该配置参数包括但不限于:该注解使用的范围、该注解的生命周期、该注解的继承、待绑定的从对象的类、关联条件、绑定字段;
声明模块2,用于声明待绑定主对象及其属性和从对象及其属性与数据库中的数据表及其列的映射关系;
数据处理模块3,用于基于命名映射规则,利用注解中的待绑定从对象的实体类名来得到该待绑定从对象在数据库中的数据表名,或者通过@Table注解获得指定的该待绑定从对象在数据库中的数据表名;对注解中的关联条件进行解析以得到关联条件中的主对象在数据库中对应的数据表的列名,基于命名映射规则得到所述主对象的数据表的列名所对应的属性名和待绑定从对象在数据库中对应的数据表的列名;基于得到的所述主对象的数据表的列名所对应的属性名,通过反射机制得到该主对象的属性值;
绑定执行模块4,用于基于得到的待绑定从对象在数据库中的数据表名和列名,将得到所述主对象的属性值作为查询输入参数值,基于关联条件和外键约束规则能够查询到该待绑定从对象的在对应所述数据表名的数据表中的列值匹配于该查询输入参数值的相应列的全部记录信息,利用反射机制将查询结果赋值给所述主对象中注解对应的属性以实现对关联对象的绑定。
其中,所述映射关系包括但不限于:主键、外键、列和字段的映射关系。
其中,所述关联条件是从对象的实体类名或某个属性字段。
其中,所述绑定执行模块工作时,当查询的匹配列值归属于从对象的多个数据表时,先将查询的全部记录信息转换为从对象的数据集合,再通过反射机制将将该数据集合赋值给所述主对象中注解对应的属性以实现对关联对象的绑定。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述第二实施例描述的装置的具体工作过程,可以参考前述第一实施例中的对应过程,前述第一实施例及相应的优选实施例中列举的例子和相关描述,同样适用于解释第二实施例描述的装置的工作过程,在此不再重复描述。
根据本发明提供的一种绑定关联对象的装置,其能够带来的优点:
1、通过注解声明对象间的关联方式,开发人员仅需要关注对象间的关联条件,极大地降低了开发难度。
2、该方法对比传统的对象关联场景的SQL代码编写,大大减少了SQL的代码量,使得代码出错率更低,更容易维护。
3、因该方法的实现是将复杂关联查询拆解为多个简单查询,可以让缓存效率更高,有效减少锁竞争。
4、同时在应用层做关联,可以更容易对数据库进行拆分,更容易做到高性能和可扩展。
以上已参照图1和图2描述了根据本申请示例性实施例的绑定关联对象的方法和装置。然而,应理解的是:附图2所示出的装置及其单元模块可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些装置或单元模块可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。此外,这些装置或单元模块所实现的一个或多个功能也可由物理实体设备(例如,处理器、客户端或服务器等)中的组件来统一执行。
此外,上述配置数据管理方法可通过记录在计算可读介质上的程序来实现,例如,根据本申请示例性实施例,可提供一种计算机可读存储介质,其中在所述计算机可读存储介质上记录有当被处理器执行时实现如第一实施例所述的方法或其与相应优选实施例的组合所述的方法的计算机程序。另外,还可提供一种计算机可读存储介质,其中在所述计算机可读存储介质上记录有当被处理器执行时实现如第二实施例所述的方法或其与相应优选实施例的组合所述的方法的计算机程序。
上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,应注意,所述计算机程序还可用于执行除了上述步骤以外的附加步骤或者在执行上述步骤时执行更为具体的处理,这些附加步骤和进一步处理的内容已经在参照图1和2进行相关方法的描述过程中提及,因此这里为了避免重复将不再进行赘述。
此外,上述配置数据管理方法还可以通过记录在计算装置上的程序来实现。该计算装置包括存储部件和处理器,存储部件中存储有计算机可执行指令集合,当所述计算机可执行指令集合被所述处理器执行时,执行如第一实施例所述的方法步骤或其与相应优选实施例的组合所述的方法步骤;或者执行如第二实施例所述的方法步骤或其与相应优选实施例的组合所述的方法步骤。
具体说来,所述计算装置可以部署在服务器或客户端中,也可以部署在分布式网络环境中的节点装置上。此外,所述计算装置可以是PC计算机、平板装置、个人数字助理、智能手机、web应用或其他能够执行上述指令集合的装置。
这里,所述计算装置并非必须是单个的计算装置,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。计算装置还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子装置。
在所述计算装置中,处理器可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
根据本申请示例性实施例的方法中所描述的某些操作可通过软件方式来实现,某些操作可通过硬件方式来实现,此外,还可通过软硬件结合的方式来实现这些操作。
处理器可运行存储在存储部件之一中的指令或代码,其中,所述存储部件还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,所述网络接口装置可采用任何已知的传输协议。
存储部件可与处理器集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储部件可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储部件和处理器可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器能够读取存储在存储部件中的文件。
此外,所述计算装置还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。计算装置的所有组件可经由总线和/或网络而彼此连接。
根据本申请示例性实施例的方法所涉及的操作可被描述为各种互联或耦合的功能块或功能示图。然而,这些功能块或功能示图可被均等地集成为单个逻辑装置或按照非确切的边界进行操作。
尽管以上描述了本申请的示例性实施例,但是应理解:上述描述仅是示例性的,并非穷尽性的。本申请不限于所披露的各示例性实施例,并且在不偏离本申请的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本申请的保护范围应该以权利要求的范围为准。

Claims (8)

1.一种绑定关联对象的方法,包括:
自定义待绑定对象的注解并声明该注解的配置参数,该配置参数包括但不限于:该注解使用的范围、该注解的生命周期、该注解的继承、待绑定的从对象的类、关联条件、绑定字段;
声明待绑定主对象及其属性和从对象及其属性与数据库中的数据表及其列的映射关系;
基于命名映射规则,利用注解中的待绑定从对象的实体类名来得到该待绑定从对象在数据库中的数据表名,或者通过@Table注解获得指定的该待绑定从对象在数据库中的数据表名;
对注解中的关联条件进行解析以得到关联条件中的主对象在数据库中对应的数据表的列名,基于命名映射规则得到所述主对象的数据表的列名所对应的属性名和待绑定从对象在数据库中对应的数据表的列名;
基于得到的所述主对象的数据表的列名所对应的属性名,通过反射机制得到该主对象的属性值;
基于得到的待绑定从对象在数据库中的数据表名和列名,将得到所述主对象的属性值作为查询输入参数值,基于关联条件和外键约束规则能够查询到该待绑定从对象的在对应所述数据表名的数据表中的列值匹配于该查询输入参数值的相应列的全部记录信息,利用反射机制将查询结果赋值给所述主对象中注解对应的属性以实现对关联对象的绑定。
2.根据权利要求1所述的方法,其中所述映射关系包括但不限于:主键、外键、列和字段的映射关系。
3.根据权利要求1所述的方法,其中所述关联条件是从对象的实体类名或某个属性字段。
4.根据权利要求1所述的方法,其中当查询的匹配列值归属于从对象的多个数据表时,先将查询的全部记录信息转换为从对象的数据集合,再通过反射机制将将该数据集合赋值给所述主对象中注解对应的属性以实现对关联对象的绑定。
5.一种绑定关联对象的装置,包括:
注解定义模块,用于自定义待绑定对象的注解并声明该注解的配置参数,该配置参数包括但不限于:该注解使用的范围、该注解的生命周期、该注解的继承、待绑定的从对象的类、关联条件、绑定字段;
声明模块,用于声明待绑定主对象及其属性和从对象及其属性与数据库中的数据表及其列的映射关系;
数据处理模块,用于基于命名映射规则,利用注解中的待绑定从对象的实体类名来得到该待绑定从对象在数据库中的数据表名,或者通过@Table注解获得指定的该待绑定从对象在数据库中的数据表名;对注解中的关联条件进行解析以得到关联条件中的主对象在数据库中对应的数据表的列名,基于命名映射规则得到所述主对象的数据表的列名所对应的属性名和待绑定从对象在数据库中对应的数据表的列名;基于得到的所述主对象的数据表的列名所对应的属性名,通过反射机制得到该主对象的属性值;
绑定执行模块,用于基于得到的待绑定从对象在数据库中的数据表名和列名,将得到所述主对象的属性值作为查询输入参数值,基于关联条件和外键约束规则能够查询到该待绑定从对象的在对应所述数据表名的数据表中的列值匹配于该查询输入参数值的相应列的全部记录信息,利用反射机制将查询结果赋值给所述主对象中注解对应的属性以实现对关联对象的绑定。
6.根据权利要求5所述的装置,其中所述映射关系包括但不限于:主键、外键、列和字段的映射关系。
7.根据权利要求5所述的装置,其中所述关联条件是从对象的实体类名或某个属性字段。
8.根据权利要求5所述的装置,其中所述绑定执行模块工作时,当查询的匹配列值归属于从对象的多个数据表时,先将查询的全部记录信息转换为从对象的数据集合,再通过反射机制将将该数据集合赋值给所述主对象中注解对应的属性以实现对关联对象的绑定。
CN202110240964.3A 2021-01-26 2021-03-04 一种绑定关联对象的方法和装置 Active CN113032393B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2021101041812 2021-01-26
CN202110104181 2021-01-26

Publications (2)

Publication Number Publication Date
CN113032393A true CN113032393A (zh) 2021-06-25
CN113032393B CN113032393B (zh) 2024-01-02

Family

ID=76467714

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110240964.3A Active CN113032393B (zh) 2021-01-26 2021-03-04 一种绑定关联对象的方法和装置

Country Status (1)

Country Link
CN (1) CN113032393B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113255315A (zh) * 2021-07-19 2021-08-13 杭州天谷信息科技有限公司 一种配置和生成证据链的方法以及系统
CN113721891A (zh) * 2021-08-18 2021-11-30 北京沃德博创信息科技有限公司 一种自定义元数据与持久化实例映射方法
CN115878666A (zh) * 2022-10-31 2023-03-31 四川川大智胜系统集成有限公司 一种缓存依赖关系的管理方法、系统、电子设备及介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130326001A1 (en) * 2012-05-29 2013-12-05 Alcatel-Lucent Canada, Inc. Generic persistence in a diameter routing agent
CN104283706A (zh) * 2013-07-08 2015-01-14 北京数码视讯科技股份有限公司 Snmp的采集处理方法及装置
WO2016011409A1 (en) * 2014-07-18 2016-01-21 Braintribe It-Technology Gmbh Expressive generic model technology
CN106126540A (zh) * 2016-06-15 2016-11-16 中国传媒大学 数据库访问系统及其访问方法
CN108376176A (zh) * 2018-03-14 2018-08-07 深圳日彤大数据有限公司 可拖拽式大数据可视化分析工具系统
CN108469955A (zh) * 2018-03-13 2018-08-31 山东超越数控电子股份有限公司 一种基于注解的Android注入框架
CN109299332A (zh) * 2018-11-02 2019-02-01 芜湖智久机器人有限公司 一种将类和数据库映射的方法、装置及存储介质
CN109670053A (zh) * 2018-12-25 2019-04-23 北京锐安科技有限公司 数据对象映射方法、装置、设备和计算机可读存储介质
CN111142862A (zh) * 2019-11-20 2020-05-12 苏州帝博信息技术有限公司 一种自动生成代码的系统及方法
CN111400070A (zh) * 2020-03-24 2020-07-10 广州华多网络科技有限公司 终端设备及其跨进程接口调用实现和执行方法
CN111767057A (zh) * 2020-06-29 2020-10-13 京东城市(北京)数字科技有限公司 一种数据处理方法及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130326001A1 (en) * 2012-05-29 2013-12-05 Alcatel-Lucent Canada, Inc. Generic persistence in a diameter routing agent
CN104283706A (zh) * 2013-07-08 2015-01-14 北京数码视讯科技股份有限公司 Snmp的采集处理方法及装置
WO2016011409A1 (en) * 2014-07-18 2016-01-21 Braintribe It-Technology Gmbh Expressive generic model technology
CN106126540A (zh) * 2016-06-15 2016-11-16 中国传媒大学 数据库访问系统及其访问方法
CN108469955A (zh) * 2018-03-13 2018-08-31 山东超越数控电子股份有限公司 一种基于注解的Android注入框架
CN108376176A (zh) * 2018-03-14 2018-08-07 深圳日彤大数据有限公司 可拖拽式大数据可视化分析工具系统
CN109299332A (zh) * 2018-11-02 2019-02-01 芜湖智久机器人有限公司 一种将类和数据库映射的方法、装置及存储介质
CN109670053A (zh) * 2018-12-25 2019-04-23 北京锐安科技有限公司 数据对象映射方法、装置、设备和计算机可读存储介质
CN111142862A (zh) * 2019-11-20 2020-05-12 苏州帝博信息技术有限公司 一种自动生成代码的系统及方法
CN111400070A (zh) * 2020-03-24 2020-07-10 广州华多网络科技有限公司 终端设备及其跨进程接口调用实现和执行方法
CN111767057A (zh) * 2020-06-29 2020-10-13 京东城市(北京)数字科技有限公司 一种数据处理方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LIOR BRACHA 等: "Informative Object Annotations: Tell Me Something I Don\'t Know", 2019 IEEE/CVF CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION (CVPR), pages 12499 - 12507 *
窦桂琴;: "组件MapX在消防安全信息系统中的应用研究", 平顶山工学院学报, no. 02, pages 37 - 40 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113255315A (zh) * 2021-07-19 2021-08-13 杭州天谷信息科技有限公司 一种配置和生成证据链的方法以及系统
CN113721891A (zh) * 2021-08-18 2021-11-30 北京沃德博创信息科技有限公司 一种自定义元数据与持久化实例映射方法
CN115878666A (zh) * 2022-10-31 2023-03-31 四川川大智胜系统集成有限公司 一种缓存依赖关系的管理方法、系统、电子设备及介质
CN115878666B (zh) * 2022-10-31 2023-09-12 四川川大智胜系统集成有限公司 一种缓存依赖关系的管理方法、系统、电子设备及介质

Also Published As

Publication number Publication date
CN113032393B (zh) 2024-01-02

Similar Documents

Publication Publication Date Title
CN113032393B (zh) 一种绑定关联对象的方法和装置
TWI412945B (zh) 擷取以及保存來自或存至關聯資料庫之各物件的方法及系統
US8930413B2 (en) Dynamic structure for a multi-tenant database
US10007698B2 (en) Table parameterized functions in database
US7836100B2 (en) Calculating and storing data structures including using calculated columns associated with a database system
KR102361153B1 (ko) 데이터 유형에 관련된 데이터 프로파일링 동작 관리
US20170032117A1 (en) Identifying Software Components in a Software Codebase
WO2008144262A1 (en) Easily queriable software repositories
US7720831B2 (en) Handling multi-dimensional data including writeback data
US20110191304A1 (en) System and method for export and import of metadata located in metadata registries
CN111177113B (zh) 数据迁移方法、装置、计算机设备和存储介质
US7840603B2 (en) Method and apparatus for database change management
US20220245125A1 (en) Dataset multiplexer for data processing system
US9201937B2 (en) Rapid provisioning of information for business analytics
CA3089289C (en) System and methods for loading objects from hash chains
WO2017095645A1 (en) Data request transformation using loosely coupled visitors
CN112883044A (zh) 用于数据库的数据处理方法、装置及计算机可读介质
US20240126727A1 (en) Techniques for comprehensively supporting json schema in a rdbms
US11847134B2 (en) Computerized system for programmatic mapping of record lineage based on data flow through data storage components
US20240126726A1 (en) Techniques for comprehensively supporting json schema in a rdbms
WO2017019562A1 (en) Structural equivalence
US20140200950A1 (en) Methods and Systems for Automatic Operation Abstraction and Custom Service Instantiation
CN113761040A (zh) 数据库与应用程序双向映射方法、设备、介质及程序产品
US9984173B2 (en) Automated value analysis in legacy data
CN114281331A (zh) 一种用于访问数据库的前后端代码文件的生成方法及装置

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
GR01 Patent grant
GR01 Patent grant