我正在尝试使用apache-poi从excel工作表中获取值,而不是将这些值输入到mysql数据库中。工作表为我提供了10000行和180列。
现在我想使用休眠框架在表格中输入excelsheet提供的值。因此,我在Java应用程序中创建了一个pojo,其中有180个属性,因此有180个getter和180个setter。
我认为将这些值设置为pojo属性的唯一方法是迭代列迭代器,然后调用pojo的setter方法。我很好奇,知道有什么更聪明或更有效的方法吗?
注意:我试图规范化表格,但是由于没有重复的数据,所以我认为表格不能规范化
因此,如我所见,您有两个选择:使用枚举或复制。无论哪种方式,您都需要生成一个Map,其中的键是字段说明符,而值是要存储在该字段中的值。
我建议您阅读第一行以获取列名并将其映射到字段名。然后,当您读取每个数据行时,会产生一个Map<FieldSpecifier, value>
。
如果使用反射,则字段说明符为字段名。使用字段名称来确定要调用的二传手。
如果使用的是Enum,则将有180个值的Enum。在每个Enum实例中都将实现一个抽象方法(setValue),以调用适当的setter。然后,映射中的字段说明符就是适当的Enum实例。然后只需迭代Map Entries,调用key.set方法即可传递DTO实例和条目值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句