一种基于JAVA技术实现数据结构化导入导出的方法技术

技术编号:32363858 阅读:20 留言:0更新日期:2022-02-20 03:35
本发明专利技术公开了一种基于JAVA技术实现数据结构化导入导出的方法,随着Java语言越来越多地被选择用于B/S结构系统的开发语言,利用POI解析技术操作Excel文件越来越广泛,在POI组件下,采用Java反射机制及自定义注解原理,设计实现了数据库与Excel文件的数据交互。此方法不仅能保证数据导入的完整性,而且能免去数据导出后重新编辑的复杂性,从而提高POI实现Excel数据导入/导出的灵活性、重用性和易扩展性。性。性。

【技术实现步骤摘要】
一种基于JAVA技术实现数据结构化导入导出的方法


[0001]本专利技术涉及数据结构化导入导出的方法
,尤其是一种基于JAVA技术实现数据结构化导入导出的方法。

技术介绍

[0002]Java反射机制是指Java语言在运行时拥有的一项自审的能力,对自身进行检查,并能直接操作程序的内部属性。即在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。通过采用该机制来实现对自己行为的描述和检测,并能根据自身行为的状态和结果,为下一步的动作做准备。
[0003]但是目前在运行中获得类信息无法构建类的Class对象和生成类的实例的机制。同时,程序代码也不能够访问装载到JVM中的类的内部信息,导致程序员的手工操作十分繁琐,带来了极大的麻烦。

技术实现思路

[0004]本专利技术要解决的技术问题是:为了解决上述
技术介绍
中存在的问题,提供一种改进的基于JAVA技术实现数据结构化导入导出的方法。
[0005]本专利技术解决其技术问题所采用的技术方案是:一种基于JAVA技术实现数据结构化导入导出的方法,包括如下步骤:
[0006]步骤一:设定注释自定义注解属性:通过设定@Retention,该注释会在Class字节码文件中存在,在运行时可通过反射机制获取该注释的属性;
[0007]步骤二:动态获取Excel表格的表头:通过调用Collections.sort()方法,可根据order的值进行标题的排序,从而实现Excel表格的表头的灵活配置;
[0008]步骤三:动态获得对应的属性值并导出数据:首先通过反射机制,获取实体model类的所有方法,然后通过自定义注解技术获取存在于方法上的注释,并且把注释的内容添加到headers对象中,从而动态的绑定标题和方法的对应关系,最后,通过Workbook对象传值调用POI生成Excel表格方法,便实现将数据库中的数据导出到Excel表格中;
[0009]步骤四:获取Excel表格中的标题和对应实体model的方法名的对应关系并导入数据:首先获取Excel表格中的表头,然后通过与实体model类中注释的标题作对比,若一致,则把标题的顺序和对应的方法名添加到maps对象中,最后,通过objs集合传值调用数据持久层的存储操作,实现将Excel表格中的数据导入到数据库中。
[0010]所述步骤一包括:只需为实体类配置ExcelAnnotation注释,在不需要预定义模板的情况下,实现Excel表格的表头的动态输出,体现了功能模块的灵活性。
[0011]所述步骤二包括:创建封装类,即ExcelHeader类可根据order的值进行标题的排序,从而实现Excel表格的表头的灵活配置,体现了功能模块的松耦合性。
[0012]所述步骤三包括:动态获得对应的属性值并导出数据,不需要更改关键代码的算
法,减少了程序员的操作,同时也提高了功能模块的重用性。
[0013]所述步骤四包括:在实体类没有外键关联的情况下,不需要更改关键代码的算法,体现了功能模块的重用性,当实体类存在外键关联时,只需调用数据持久层的查询操作修改属性值即可,体现了功能模块的易扩展性。
[0014]本专利技术的有益效果是:
[0015]本专利技术的一种基于JAVA技术实现数据结构化导入导出的方法,通过对基于Java反射机制的POI实现Excel数据导入导出的开发,减少了程序员的手工操作,带来了极大的方便,效果十分明显。
附图说明
[0016]下面结合附图和实施例对本专利技术进一步说明。
[0017]图1是基于JAVA技术实现数据结构化导入导出的流程图。
具体实施方式
[0018]现在结合附图对本专利技术作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本专利技术的基本结构,因此其仅显示与本专利技术有关的构成。
[0019]参照图1所示,本专利技术一种基于JAVA技术实现数据结构化导入导出的方法,包括如下步骤:
[0020]步骤一:通过设定@Retention(RetentionPolicy.RUNTIME),该注释会在Class字节码文件中存在,在运行时可通过反射机制获取该注释的属性。没有注释的实体model类的字段将不受影响,有注释的实体model类的字段将会根据title的值输出标题,并且根据order的值进行排序。从而在不需要预定义模板的情况下,实现Excel表格的表头的动态输出,提高了功能模块的灵活性。
[0021]步骤二:建立ExcelHeader类用来存储Excel标题的对象,通过该类在反射机制中可以动态获取标题和方法的对应关系。同时,该类实现Comparable接口,重写了public int compareTo()方法。通过调用Collections.sort()方法,可根据order的值进行标题的排序,从而实现Excel表格的表头的灵活配置。
[0022]步骤三:数据导出技术,引用Java反射机制后,根据加载类对象和字段名便可以动态获得对应的属性值,因此,不需要更改关键代码的算法,减少了程序员的操作,同时也提高了功能模块的重用性。getHeaderList()方法首先通过反射机制,获取实体model类的所有方法,然后通过自定义注解技术获取存在于方法上的注释,并且把注释的内容添加到headers对象中,从而动态的绑定标题和方法的对应关系。
[0023]exportExcel()方法通过调用getHeaderList()取得headers对象中标题和方法的对应关系。通过反射机制,调用加载类对象和字段名获取对应的属性值,从而动态的绑定表头和属性值的映射关系。最后,通过Workbook对象传值调用POI生成Excel表格方法,便实现将数据库中的数据导出到Excel表格中。
[0024]步骤四:数据导入技术,把字段名和对应的属性值复制到加载类对象中,调用数据持久层的存储操作即可。同样,不需要更改关键代码的算法,体现了功能模块的重用性。getHeaderMap()方法首先获取Excel表格中的表头,然后通过与实体model类中注释的标
题作对比,若一致,则把标题的顺序和对应的方法名添加到maps对象中。
[0025]readExcel()方法通过调用getHeaderMap()取得Excel表格中的标题和对应实体model的方法名的对应关系。通过反射机制,把字段名和Excel表格中对应的属性值复制到obj对象中,形成实体model类的复制类。最后,通过objs集合传值调用数据持久层的存储操作,实现将Excel表格中的数据导入到数据库中。
[0026]本专利技术一种基于JAVA技术实现数据结构化导入导出的方法,通过对基于Java反射机制的POI实现Excel数据导入导出的开发,减少了程序员的手工操作,带来了极大的方便。该方法在实际中得到应用,取得了较好的效果。
[0027]以上述依据本专利技术的理想实施例为启示本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于JAVA技术实现数据结构化导入导出的方法,其特征在于,包括如下步骤:步骤一:设定注释自定义注解属性:通过设定@Retention,该注释会在Class字节码文件中存在,在运行时可通过反射机制获取该注释的属性;步骤二:动态获取Excel表格的表头:通过调用Collections.sort()方法,可根据order的值进行标题的排序,从而实现Excel表格的表头的灵活配置;步骤三:动态获得对应的属性值并导出数据:首先通过反射机制,获取实体model类的所有方法,然后通过自定义注解技术获取存在于方法上的注释,并且把注释的内容添加到headers对象中,从而动态的绑定标题和方法的对应关系,最后,通过Workbook对象传值调用POI生成Excel表格方法,便实现将数据库中的数据导出到Excel表格中;步骤四:获取Excel表格中的标题和对应实体model的方法名的对应关系并导入数据:首先获取Excel表格中的表头,然后通过与实体model类中注释的标题作对比,若一致,则把标题的顺序和对应的方法名添加到maps对象中,最后,通过objs集合传值调用数据持久层的存储操作,实现将Excel表格...

【专利技术属性】
技术研发人员:常兵薛桢一陈德徐孙诚彬阮莹莹
申请(专利权)人:江苏锐天信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1