0

我需要一些关于如何以一种好的方式做到这一点的意见。

我的应用程序今天是这样工作的。

它从 sql server 读取记录集,循环通过它并创建分号分隔的数据行,并将其放入ArrayList<String>.

我将此 ArrayList 发送到一个输出类,该类打开一个文件写入器并循环通过 ArrayList 打印所有行,为每一行添加一个换行符。

但现在我想以这种方式编辑函数。

Recordset 进来,每次分号行完成时,我都会在行上放一些验证方法来检查它的有效性。如果该行有效,则上述内容不应更改。但是如果该行无效,那么它应该将整个“文档”(连接到该无效行的所有行)发送到错误输出。

所以我正在寻找如何建立一个好的机制,以便能够为记录集的每个循环保存数据行,然后将文档(所有附加的行)发送到好的数据或坏的数据写入器。

这里的技巧是,创建的分号行由标题和 X 行组成,有时由标题、子标题和 X 行组成。因此,如果其中一行失败,我希望所有应该附加到该标题的行都落入错误输出中。

我认为有更好的方法来应用我正在尝试做的事情,并且可能以 JAVA 方式应用,因为我主要是一名 PHP 程序员,而且我很久以前就开始了这个项目,而我的 JAVA 技能还没有达到现在的水平。

4

1 回答 1

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 等方法。

于 2013-10-04T07:28:54.507 回答