一种代码编译方法、装置、电子设备及介质与流程

未命名 09-13 阅读:126 评论:0


1.本技术涉及java开发技术领域,具体而言,涉及一种代码编译方法、装置、电子设备及介质。


背景技术:

2.随着互联网技术和数字化产业的飞速发展,开发人员的工作越来越重要,尤其是编写数据库交互的代码占用开发人员绝大部分的时间。java编程语言是目前信息化系统开发中最为成熟的开发语言,而mybatis框架则是java生态中最为流行的数据库访问对象映射框架,其具有以下优点:1.代码量少;2.小巧并且简单易学;3.灵活,不会对应用程序或者数据库的现有设计强加任何影响,sql写在xml里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,可重用;4.提供xml标签,支持编写动态sql语句;5.提供映射标签,支持对象与数据库的orm字段关系映射(在xml中配置映射关系,也可以使用注解。但同时,mybatis框架也存在其固有的缺点,比如sql语句的编写工作量较大,尤其是访问字段多时更是如此,而且在查询中对字段的获取没有动态控制功能,不同场景下需要获取不同量的字段就要写不同的sql,工作量繁重。为解决这些缺点,目前业界有不少框架对mybatis进行二次封装变成类似hibernate这样完全自动化orm框架的趋势,如mybatis-plus等,但这样又丧失了mybatis原有轻量简单的优点。


技术实现要素:

3.有鉴于此,本技术的目的在于提供一种代码编译方法、装置、电子设备及介质,能够基于mybatis框架编译访问数据库的sql语句,且减少重复工作,根据场景自定义所需的返回字段,而不用重新写新的方法,提高方法重用率,并节约数据库的io压力。
4.本技术实施例提供的一种代码编译方法,包括:
5.基于针对目标表的目标对象的至少一种目标访问方法,从预先编译好的多种基类接口中选择与目标访问方法对应的至少一种目标基类接口;其中,不同的基类接口能够实现不同的访问方法,所述基类接口中携带有泛型参数;
6.根据所述目标表的属性和内容,修改每一目标基类接口中的通用参数,得到针对目标表的对象接口;
7.基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件。
8.在一些实施例中,所述的代码编译方法中,在基于针对目标表的目标对象的至少一种目标访问方法,从预先编译好的多种基类接口中选择与目标访问方法对应的至少一种目标基类接口之前,所述方法还包括:
9.确定数据库表中通用数据访问对象的多种访问方法;
10.确定每种访问方法对应的泛型参数,以及当所述访问方法为需要指定字段列的查询方法时,确定该访问方法对应的不定参数;
11.基于所述泛型参数和/或不定参数,编译与多种访问方法一一对应的多种基类接
口,得到预先编译好的多种基类接口。
12.在一些实施例中,所述的代码编译方法中,所述访问方法包括:通用单个插入方法、通用单个更新、通用根据主键单个删除、通用根据主键单个查询、通用根据主键列表批量查询、通用对象范例查询、自定义查询对象列表查询和自定义查询对象数量查询。
13.在一些实施例中,所述的代码编译方法中,根据所述目标表的属性、目标对象的属性,修改每一目标基类接口中的通用参数,得到针对目标表的对象接口,包括:
14.根据所述目标表的属性和内容,修改每一目标基类接口中的泛型参数;
15.判断所述目标基类接口是否对应需要指定字段列的查询方法;
16.若是,基于目标表中需要查询的字段列,修改该目标基类接口的不定参数,得到针对目标表的对象接口;
17.若否,则得到针对目标表的对象接口。
18.在一些实施例中,所述的代码编译方法中,根据所述目标表的属性和内容,修改目标基类接口中的通用参数,得到针对目标表的对象接口,包括:
19.继承所述目标基类接口;
20.基于所述目标表的属性和内容,确定通用参数在目标表中具体的对象属性;
21.编译将所述通用参数定义为所述对象属性的代码,以修改目标基类接口中的通用参数。
22.在一些实施例中,所述的代码编译方法中,基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件,包括:
23.基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件的第一sql语句;其中,所述第一sql语句抽取对象接口的变量和逻辑;
24.基于针对目标表的自定义访问方法,编译用于实现自定义访问方法的第二sql语句;
25.基于所述第一sql语句和第二sql语句,得到针对目标表的目标xml配置文件。
26.在一些实施例中,所述的代码编译方法中,基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件,包括:
27.继承预先编译的基类xml配置文件;
28.基于所述针对目标表的对象接口,和/或自定义访问方法,修改所述基类xml配置文件,得到针对目标表的目标xml配置文件。
29.在一些实施例中,还提供一种代码编译装置,所述装置包括:
30.选择模块,用于基于针对目标表的目标对象的至少一种目标访问方法,从预先编译好的多种基类接口中选择与目标访问方法对应的至少一种目标基类接口;其中,不同的基类接口能够实现不同的访问方法,所述基类接口中携带有泛型参数;
31.修改模块,用于根据所述目标表的属性和内容,修改每一目标基类接口中的通用参数,得到针对目标表的对象接口;
32.编译模块,用于基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件。
33.在一些实施例中,还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器
之间通过总线通信,所述机器可读指令被所述处理器执行时执行所述的代码编译方法的步骤。
34.在一些实施例中,还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时所述的代码编译方法的步骤。
35.本技术实施例提供一种代码编译方法、装置、电子设备及介质,所述方法基于针对目标表的目标对象的至少一种目标访问方法,从预先编译好的多种基类接口中选择与目标访问方法对应的至少一种目标基类接口;其中,不同的基类接口能够实现不同的访问方法,所述基类接口中携带有泛型参数;根据所述目标表的属性和内容,修改每一目标基类接口中的通用参数,得到针对目标表的对象接口;基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件;这样,针对数据库中不同表的相同访问方法,不需要重读编译该访问方法对应的代码,只需要通过继承基类接口和修改参数的方式即可编译数据库中大量表的访问方法,通过将访问方法的通用逻辑和变量抽取到基类接口对象和配置文件中,减少重复工作,在应用程序调用查询方法时,可根据场景自定义所需的返回字段,而不用重新写新的方法,提高方法重用率,并节约数据库的io压力。
附图说明
36.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
37.图1示出了本技术实施例所述代码编译方法的方法流程图;
38.图2示出了本技术实施例所述编译多种基类接口的方法流程图;
39.图3示出了本技术实施例所述修改每一目标基类接口中的通用参数,得到针对目标表的对象接口的方法流程图;
40.图4示出了本技术实施例所述另一种修改每一目标基类接口中的通用参数,得到针对目标表的对象接口的方法流程图;
41.图5示出了本技术实施例所述编译针对目标表的目标xml配置文件的方法流程图;
42.图6示出了本技术实施例所述代码编译装置的结构示意图;
43.图7示出了本技术实施例所述电子设备的结构示意图。
具体实施方式
44.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,应当理解,本技术中附图仅起到说明和描述的目的,并不用于限定本技术的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本技术中使用的流程图示出了根据本技术的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本技术内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
45.另外,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在
此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
46.需要说明的是,本技术实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
47.随着互联网技术和数字化产业的飞速发展,开发人员的工作越来越重要,尤其是编写数据库交互的代码占用开发人员绝大部分的时间。java编程语言是目前信息化系统开发中最为成熟的开发语言,而mybatis框架则是java生态中最为流行的数据库访问对象映射框架,其具有以下优点:1.代码量少;2.小巧并且简单易学;3.灵活,不会对应用程序或者数据库的现有设计强加任何影响,sql写在xml里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,可重用;4.提供xml标签,支持编写动态sql语句;5.提供映射标签,支持对象与数据库的orm字段关系映射(在xml中配置映射关系,也可以使用注解。但同时,mybatis框架也存在其固有的缺点,比如sql语句的编写工作量较大,尤其是访问字段多时更是如此,而且在查询中对字段的获取没有动态控制功能,不同场景下需要获取不同量的字段就要写不同的sql,工作量繁重。为解决这些缺点,目前业界有不少框架对mybatis进行二次封装变成类似hibernate这样完全自动化orm框架的趋势,如mybatis-plus等,但这样又丧失了mybatis原有轻量简单的优点。
48.基于此,本技术实施例提供一种代码编译方法、装置、电子设备及介质,所述方法基于针对目标表的目标对象的至少一种目标访问方法,从预先编译好的多种基类接口中选择与目标访问方法对应的至少一种目标基类接口;其中,不同的基类接口能够实现不同的访问方法,所述基类接口中携带有泛型参数;根据所述目标表的属性和内容,修改每一目标基类接口中的通用参数,得到针对目标表的对象接口;基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件;这样,针对数据库中不同表的相同访问方法,不需要重读编译该访问方法对应的代码,只需要通过继承基类接口和修改参数的方式即可编译数据库中大量表的访问方法,通过将访问方法的通用逻辑和变量抽取到基类接口对象和配置文件中,减少重复工作,在应用程序调用查询方法时,可根据场景自定义所需的返回字段,而不用重新写新的方法,提高方法重用率,并节约数据库的io压力。
49.请参照图1,图1示出了本技术实施例所述代码编译方法的方法流程图,所述方法包括以下步骤s101-s103:
50.s101、基于针对目标表的目标对象的至少一种目标访问方法,从预先编译好的多种基类接口中选择与目标访问方法对应的至少一种目标基类接口;其中,不同的基类接口能够实现不同的访问方法,所述基类接口中携带有泛型参数;
51.s102、根据所述目标表的属性和内容,修改每一目标基类接口中的通用参数,得到针对目标表的对象接口;
52.s103、基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件。
53.本技术实施例提供一种代码编译方法基于针对目标表的目标对象的至少一种目标访问方法,从预先编译好的多种基类接口中选择与目标访问方法对应的至少一种目标基类接口;其中,不同的基类接口能够实现不同的访问方法,所述基类接口中携带有泛型参
数;根据所述目标表的属性和内容,修改每一目标基类接口中的通用参数,得到针对目标表的对象接口;基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件;这样,针对数据库中不同表的相同访问方法,不需要重读编译该访问方法对应的代码,只需要通过继承基类接口和修改参数的方式即可编译数据库中大量表的访问方法,通过将访问方法的通用逻辑和变量抽取到基类接口对象和配置文件中,减少重复工作,在应用程序调用查询方法时,可根据场景自定义所需的返回字段,而不用重新写新的方法,提高方法重用率,并节约数据库的io压力。
54.在所述步骤s101中,基于针对目标表的目标对象的至少一种目标访问方法,从预先编译好的多种基类接口中选择与目标访问方法对应的至少一种目标基类接口;其中,不同的基类接口能够实现不同的访问方法,所述基类接口中携带有泛型参数。
55.这样,在所述基于针对目标表的目标对象的至少一种目标访问方法,从预先编译好的多种基类接口中选择与目标访问方法对应的至少一种目标基类接口之前,还需要预先编译多种基类接口。
56.本技术实施例中,具体的,请参照图2,所述多种基类接口,是通过以下方法编译的,所述编译多种基类接口的方法包括以下步骤s201-s203:
57.s201、确定数据库表中通用数据访问对象的多种访问方法;
58.s202、字段列的查询方法时,确定该访问方法对应的不定参数;
59.s203、基于所述泛型参数和/或不定参数,编译与多种访问方法一一对应的多种基类接口,得到预先编译好的多种基类接口。
60.数据库的通用功能包括增删改查,基于此,所述数据库表中通用数据访问对象的多种访问方法包括:通用单个插入方法、通用单个更新、通用根据主键单个删除、通用根据主键单个查询、通用根据主键列表批量查询、通用对象范例查询、自定义查询对象列表查询和自定义查询对象数量查询。
61.访问方法是由程序的逻辑和变量决定的,因为,这里,所述通用数据访问对象的不同访问方法,其对应的通用逻辑和变量不同。
62.所述针对目标表的目标对象的至少一种目标访问方法,就是说,针对数据库中的单个表来说,通常需要用到以上多种访问方法中的几种,而非全部的访问方法。
63.示例性的,针对数据库中的表a,其需要编译的目标访问方法为单个插入方法、单个更新、根据主键单个查询;针对数据库中的表b,其需要编译的访问方法为:通用根据主键单个查询、通用根据主键列表批量查询、通用对象范例查询。
64.在所述步骤s102中,根据所述目标表的属性和内容,修改每一目标基类接口中的通用参数,得到针对目标表的对象接口。
65.本技术实施例中,所述通用参数为泛型参数,具体为泛型占位符。除此之外,所述访问方法中除数量查询之外的其他查询方法,最后一个参数都是不定参数,不定参数用来指定具体需要的字段列,默认不指定则返回所有字段,可节省数据库查询压力。
66.也就是说,所述通用参数有两种情况,第一种情况,所述通用参数包括泛型参数;第二种情况,所述通用参数和不定参数。
67.请参照图3,本技术实施例中,根据所述目标表的属性、目标对象的属性,修改每一目标基类接口中的通用参数,得到针对目标表的对象接口,包括以下步骤s301-s304:
68.s301、根据所述目标表的属性和内容,修改每一目标基类接口中的泛型参数;
69.s302、判断所述目标基类接口是否对应需要指定字段列的查询方法;
70.s303、若是,基于目标表中需要查询的字段列,修改该目标基类接口的不定参数,得到针对目标表的对象接口;
71.s304、若否,则得到针对目标表的对象接口。
72.示例性的,例如所述将所述泛型参数修改为查询a表中的姓名列,通过不定参数,则可以进一步先定位查询a表中姓名列前100行的姓名。
73.本技术实施例中,所述目标表的属性,包括目标表的名称、类型等等。所述目标表的内容,包括目标表中在字段、字段的类型等。
74.本技术实施例中,请参照图4,根据所述目标表的属性和内容,修改目标基类接口中的通用参数,得到针对目标表的对象接口,包括以下步骤s401-s403:
75.s401、继承所述目标基类接口;
76.s402、基于所述目标表的属性和内容,确定通用参数在目标表中具体的对象属性;
77.s403、编译将所述通用参数定义为所述对象属性的代码,以修改目标基类接口中的通用参数。
78.示例性的,例如通用参数为t,则编译定位t为表a的id的代码语句,并非是将参数为t直接修改成参数为表a的id。
79.在所述步骤s103中,基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件。
80.具体的,请参照图5,基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件,包括以下步骤s501-s503:
81.s501、基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件的第一sql语句;其中,所述第一sql语句抽取对象接口的变量和逻辑;
82.s502、基于针对目标表的自定义访问方法,编译用于实现自定义访问方法的第二sql语句;
83.s503、基于所述第一sql语句和第二sql语句,得到针对目标表的目标xml配置文件。
84.这里,所述第一sql语句抽取对象接口的变量和逻辑:所述变量包括所有对象接口的默认的所有字段变量、表变量;所述逻辑包括字段循环过滤逻辑、通用根据主键单个查询、通用根据主键列表批量查询、通用对象范例查询等等所有对象接口的逻辑。
85.也就是说,所述目标xml配置文件不仅仅能实现已经编译好的基类接口的访问方法,还能够编译针对目标表的自定义方法,两相结合既保证了减少重复代码的编译,又保证了能够灵活实现数据库表的各种访问功能。
86.在一些实施例中,所述的代码编译方法中,基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件,包括:
87.继承预先编译的基类xml配置文件;
88.基于所述针对目标表的对象接口,和/或自定义访问方法,修改所述基类xml配置文件,得到针对目标表的目标xml配置文件。
89.也就是说,在一些实施例中,还可以预先配置一些模板化的xml配置文件,在这些
模板化的xml配置文件插入目标表的对象接口和编译自定义访问方法的代码,进一步减少代码编译过程中的重复工作。
90.本技术实施例中,所述基类接口和基类xml配置文件均属于轻量级封装,在规范了数据库访问对象的通用方法的同时,还方便自定义改写。
91.基于同一发明构思,本技术实施例中还提供了与代码编译方法对应的代码编译装置,由于本技术实施例中的装置解决问题的原理与本技术实施例上述代码编译方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
92.请参照图6,图6示出了本技术实施例所述代码编译装置的结构示意图;具体的,所述代码编译装置包括:
93.选择模块601,用于基于针对目标表的目标对象的至少一种目标访问方法,从预先编译好的多种基类接口中选择与目标访问方法对应的至少一种目标基类接口;其中,不同的基类接口能够实现不同的访问方法,所述基类接口中携带有泛型参数;
94.修改模块602,用于根据所述目标表的属性和内容,修改每一目标基类接口中的通用参数,得到针对目标表的对象接口;
95.编译模块603,用于基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件。
96.本技术实施例提供的代码编译装置基于针对目标表的目标对象的至少一种目标访问方法,从预先编译好的多种基类接口中选择与目标访问方法对应的至少一种目标基类接口;其中,不同的基类接口能够实现不同的访问方法,所述基类接口中携带有泛型参数;根据所述目标表的属性和内容,修改每一目标基类接口中的通用参数,得到针对目标表的对象接口;基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件;这样,针对数据库中不同表的相同访问方法,不需要重读编译该访问方法对应的代码,只需要通过继承基类接口和修改参数的方式即可编译数据库中大量表的访问方法,通过将访问方法的通用逻辑和变量抽取到基类接口对象和配置文件中,减少重复工作,在应用程序调用查询方法时,可根据场景自定义所需的返回字段,而不用重新写新的方法,提高方法重用率,并节约数据库的io压力。
97.在一些实施例中,所述代码编译装置还包括:
98.确定模块,用于在基于针对目标表的目标对象的至少一种目标访问方法,从预先编译好的多种基类接口中选择与目标访问方法对应的至少一种目标基类接口之前,确定数据库表中通用数据访问对象的多种访问方法;
99.确定每种访问方法对应的泛型参数,以及当所述访问方法为需要指定字段列的查询方法时,确定该访问方法对应的不定参数;
100.基于所述泛型参数和/或不定参数,编译与多种访问方法一一对应的多种基类接口,得到预先编译好的多种基类接口。
101.在一些实施例中,所述代码编译装置中的所述访问方法包括:通用单个插入方法、通用单个更新、通用根据主键单个删除、通用根据主键单个查询、通用根据主键列表批量查询、通用对象范例查询、自定义查询对象列表查询和自定义查询对象数量查询。
102.在一些实施例中,所述代码编译装置中修改模块,在根据所述目标表的属性、目标对象的属性,修改每一目标基类接口中的通用参数,得到针对目标表的对象接口时,具体用
于:
103.根据所述目标表的属性和内容,修改每一目标基类接口中的泛型参数;
104.判断所述目标基类接口是否对应需要指定字段列的查询方法;
105.若是,基于目标表中需要查询的字段列,修改该目标基类接口的不定参数,得到针对目标表的对象接口;
106.若否,则得到针对目标表的对象接口。
107.在一些实施例中,所述代码编译装置中修改模块,在根据所述目标表的属性和内容,修改目标基类接口中的通用参数,得到针对目标表的对象接口,具体用于:
108.继承所述目标基类接口;
109.基于所述目标表的属性和内容,确定通用参数在目标表中具体的对象属性;
110.编译将所述通用参数定义为所述对象属性的代码,以修改目标基类接口中的通用参数。
111.在一些实施例中,所述代码编译装置中的编译模块,在基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件时,具体用于:
112.基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件的第一sql语句;其中,所述第一sql语句抽取对象接口的变量和逻辑;
113.基于针对目标表的自定义访问方法,编译用于实现自定义访问方法的第二sql语句;
114.基于所述第一sql语句和第二sql语句,得到针对目标表的目标xml配置文件。
115.在一些实施例中,所述代码编译装置中的编译模块,在基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件时,具体用于:
116.继承预先编译的基类xml配置文件;
117.基于所述针对目标表的对象接口,和/或自定义访问方法,修改所述基类xml配置文件,得到针对目标表的目标xml配置文件。
118.基于同一发明构思,本技术实施例中还提供了与代码编译方法对应的电子设备,由于本技术实施例中的电子设备解决问题的原理与本技术实施例上述代码编译方法相似,因此电子设备的实施可以参见方法的实施,重复之处不再赘述。
119.请参照图7,图7示出了本技术实施例所述电子设备的结构示意图,具体的,所述电子设备700包括:处理器702、存储器701和总线,所述存储器701存储有所述处理器702可执行的机器可读指令,当电子设备700运行时,所述处理器702与所述存储器701之间通过总线通信,所述机器可读指令被所述处理器702执行时执行所述的代码编译方法的步骤。
120.基于同一发明构思,本技术实施例中还提供了与代码编译方法对应的计算机可读存储介质,由于本技术实施例中的计算机可读存储介质解决问题的原理与本技术实施例上述代码编译方法相似,因此计算机可读存储介质的实施可以参见方法的实施,重复之处不再赘述。
121.一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行所述的代码编译方法的步骤。
122.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本技术中不再赘述。在本技术
所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
123.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
124.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
125.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,平台服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
126.以上仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。

技术特征:
1.一种代码编译方法,其特征在于,所述方法包括:基于针对目标表的目标对象的至少一种目标访问方法,从预先编译好的多种基类接口中选择与目标访问方法对应的至少一种目标基类接口;其中,不同的基类接口能够实现不同的访问方法,所述基类接口中携带有泛型参数;根据所述目标表的属性和内容,修改每一目标基类接口中的通用参数,得到针对目标表的对象接口;基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件。2.根据权利要求1所述的代码编译方法,其特征在于,基于针对目标表的目标对象的至少一种目标访问方法,从预先编译好的多种基类接口中选择与目标访问方法对应的至少一种目标基类接口之前,所述方法还包括:确定数据库表中通用数据访问对象的多种访问方法;确定每种访问方法对应的泛型参数,以及当所述访问方法为需要指定字段列的查询方法时,确定该访问方法对应的不定参数;基于所述泛型参数和/或不定参数,编译与多种访问方法一一对应的多种基类接口,得到预先编译好的多种基类接口。3.根据权利要求2所述的代码编译方法,其特征在于,所述访问方法包括:通用单个插入方法、通用单个更新、通用根据主键单个删除、通用根据主键单个查询、通用根据主键列表批量查询、通用对象范例查询、自定义查询对象列表查询和自定义查询对象数量查询。4.根据权利要求2所述的代码编译方法,其特征在于,根据所述目标表的属性、目标对象的属性,修改每一目标基类接口中的通用参数,得到针对目标表的对象接口,包括:根据所述目标表的属性和内容,修改每一目标基类接口中的泛型参数;判断所述目标基类接口是否对应需要指定字段列的查询方法;若是,基于目标表中需要查询的字段列,修改该目标基类接口的不定参数,得到针对目标表的对象接口;若否,则得到针对目标表的对象接口。5.根据权利要求1所述的代码编译方法,其特征在于,根据所述目标表的属性和内容,修改目标基类接口中的通用参数,得到针对目标表的对象接口,包括:继承所述目标基类接口;基于所述目标表的属性和内容,确定通用参数在目标表中具体的对象属性;编译将所述通用参数定义为所述对象属性的代码,以修改目标基类接口中的通用参数。6.根据权利要求1所述的代码编译方法,其特征在于,基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件,包括:基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件的第一sql语句;其中,所述第一sql语句抽取对象接口的变量和逻辑;基于针对目标表的自定义访问方法,编译用于实现自定义访问方法的第二sql语句;基于所述第一sql语句和第二sql语句,得到针对目标表的目标xml配置文件。7.根据权利要求1所述的代码编译方法,其特征在于,基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件,包括:
继承预先编译的基类xml配置文件;基于所述针对目标表的对象接口,和/或自定义访问方法,修改所述基类xml配置文件,得到针对目标表的目标xml配置文件。8.一种代码编译装置,其特征在于,所述装置包括:选择模块,用于基于针对目标表的目标对象的至少一种目标访问方法,从预先编译好的多种基类接口中选择与目标访问方法对应的至少一种目标基类接口;其中,不同的基类接口能够实现不同的访问方法,所述基类接口中携带有泛型参数;修改模块,用于根据所述目标表的属性和内容,修改每一目标基类接口中的通用参数,得到针对目标表的对象接口;编译模块,用于基于所述针对目标表的对象接口,编译针对目标表的目标xml配置文件。9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任意一项所述的代码编译方法的步骤。10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任意一项所述的代码编译方法的步骤。

技术总结
本申请实施例提供一种代码编译方法、装置、电子设备及介质,所述方法基于针对目标表的目标对象的至少一种目标访问方法,从预先编译好的多种基类接口中选择与目标访问方法对应的至少一种目标基类接口;根据所述目标表的属性和内容,修改每一目标基类接口中的通用参数,得到针对目标表的对象接口;基于所述针对目标表的对象接口,编译针对目标表的目标XML配置文件;这样,针对数据库中不同表的相同访问方法,不需要重读编译该访问方法对应的代码,从而减少重复工作。从而减少重复工作。从而减少重复工作。


技术研发人员:陈熠樑
受保护的技术使用者:平安银行股份有限公司
技术研发日:2023.06.06
技术公布日:2023/9/12
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐