本发明专利技术公开了一种自动化映射数据库表字段生成实体类的方法,涉及后端开发技术领域。后端开发工作:需要利用Spring框架的自动注入bean的原理,以及数据库的相关知识,自动读取数据库的表信息,并生成Java实体类和相应的Dao层文件。
【技术实现步骤摘要】
本专利技术涉及后端开发的,尤其涉及spring框架的自动注入bean的原理。
技术介绍
1、spring的属性注入属于spring bean的生命周期一部分,bean的生命周期首先记住两个概念:spring bean:最终存在spring容器当中的对象。对象:实例化出来的对象,但是一个对象并不一定是spring bean。spring框架的自动装配(autowiring)bean的原理主要涉及以下几个关键组件和步骤:bean定义:在spring配置文件或使用java配置类中定义bean。组件扫描:spring会扫描指定的包路径,查找带有注解(如@component,@service,@repository,@controller)的类,并将其注册为bean。依赖注入的注解:在类的字段或构造方法上使用@autowired注解,以表明需要自动装配的依赖。容器初始化:初始化spring容器,加载所有配置的bean。依赖注入:当创建bean时,spring会检查并注入所需的依赖,即如果一个bean需要另一个bean作为依赖,spring会自动将它注入到依赖的bean中。
技术实现思路
1、为解决现有技术存在的问题之一,公开了一种自动化映射数据库表字段生成实体类的方法,利用spring框架的自动注入bean的原理来自动生成数据库表对应的java实体类。
2、为解决上述问题,本专利技术所采取的技术方案如下:
3、一种自动化映射数据库表字段生成实体类的方法,如下:
4、步骤一:建立tableinfo实体类,这个对应数据库表的具体字段信息模型,该类中拥有4个成员变量:columnname:字段名称,defaultvalue:默认值,datatype:数据类型,comment:字段备注信息;
5、步骤二:建立dbmappingbean类,这是用于初始化数据库信息以及相关表字段映射成相关bean对象的类,该类中有静态成员变量tablefullinfomap,类型为map<string,map<string,tableinfo>>,该类实现了applicationcontextaware接口,并实现其方法setapplicationcontext(applicationcontext applicationcontext);
6、首先主要根据接口类的全限定名作为参数,通class.forname(stringclassname)方法去获取当前接口类的对象,比如输入当前接口类的全限定类名:com.saicmobility.sr.srpassengerservice.api.srpassengerservice便可以获取到srpassengerservice这个类,这样获得到当前接口类的所有信息;
7、由于我们是为了做接口测试,只需要获取当前对象的所有接口方法,因为是接口类,所以不会存在私有方法,对于每个接口调用的子url是当前接口类名加上方法名,比如当前方法是getpassengerinfo,那么子url最后就是/srpassengerservice/getpassengerinfo;
8、通过上面获取的接口类,再通过class.getdeclaredmethods()获取当前类中所有的方法列表,是以数组形式(method[])呈现,记作methods;
9、声明一个map<string,object>对象,用于存储最终生成的组装参数信息,记作parammap;
10、对上述的接口方法数组methods进行遍历,用于组装内部的入参,这里是比较复杂的,需要分很多步骤完成;
11、在遍历的对象数组的for循环中,通过method.getparametertypes()先获取当前方法的所有入参类型,是类数组泛型对象的格式(class<?>[]),记作parametertypes,同时声明map<string,object>对象存储当前遍历的方法入参,记作rawmap;
12、对上面的入参类型数组parametertypes进行遍历,在for循环中,再次利用class.forname(string classname)方法去获取入参对象类,这里的classname是通过遍历的入参类型的getname()获取,获取到的对象类记作parameterclass;
13、对上面获取到的入参对象类parameterclass调用getdeclaredfields()方法,获得到当前入参类中所有声明的成员变量数组(field[]),记作fields,这里是我们需要获取的深层次的入参字段;
14、对上面成员变量数组fields进行遍历,在for循环中对成员变量field需要进行分类判断,如果对象是如下几种类型:int.class,integer.class,object.class,list.class,long.class,long.class,double.class,double.class,lazystringlist。
15、本专利技术与现有技术相比较,本专利技术的实施效果如下:
16、本方案涉及后端开发
后端开发工作:需要利用spring框架的自动注入bean的原理,以及数据库的相关知识,自动读取数据库的表信息,并生成java实体类和相应的dao层文件。
本文档来自技高网...
【技术保护点】
1.一种自动化映射数据库表字段生成实体类的方法,其特征在于:
【技术特征摘要】
1.一种自动化映射数据库表字段...
【专利技术属性】
技术研发人员:陈晓阳,
申请(专利权)人:上海赛可出行科技服务有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。