我需要一些关于如何以良好方式完成此操作的输入。
我的应用程序今天就像这样。
它从一个sql server读取一个记录集,循环遍历这个记录集并创建以分号分隔的数据行放入ArrayList<String>
。
这个ArrayList我发送到一个打开文件编写器的输出类,并循环遍历ArrayList,打印所有行,为每一行添加一个换行符。
但现在我想以这种方式编辑这个功能。
记录集进来,每次分号行完成后,我会在行上放置一些验证方法来检查其有效性。如果该行有效,则上述任何内容都不应更改。但是如果行无效,那么它应该将整个“文档”(连接到此无效行的所有行)发送到错误输出。
所以我正在寻找如何建立一个良好的机制,以便能够为记录集的每个循环保存数据行,然后将文档(所有附加的行)发送到好数据或坏数据写入器。
这里的技巧是创建的分号行包含标题和X行,有时包括Header,Subheader和X行。因此,如果其中一行失败,我希望应该附加到该标头的所有行都落入错误输出。
我认为有更好的方法来应用我想要做的事情,可能是以JAVA方式,因为我主要是一个PHP程序员,而且很久以前我开始这个项目之前我的JAVA技能已经到了现在
答案 0 :(得分:0)
如果验证逻辑不复杂,我会过滤sql语句中的行。 另一种方法是从分号表示中退出以支持对象,这样您就可以简单地删除带有子对象的对象。考虑使用像对象列表这样的东西:
public class Data {
private Object header;
private Object subHeader;
private List<Object> rowData;
private List<Data> children;
//Constructors, getters setters, equal, hash, toString
}
通过在示例中构建层次结构a List<Data>
您可以简单地删除一个对象(或将其发送到任何您想要的地方),并通过覆盖toString您根本不需要构建字符串数组。如果你需要它们,那么像equal和hash这样的方法也是如此。