2017-01-25 20 views
1

我目前正试图在一个结构或数据类型中保存来自两个不同SQL语句的一些依赖信息。
因此,这是这种情况:如何在JAVA中存储2个字符串和相关数组/矢量?

  1. 首先SQL请求得到所有对象 - >结果始终是2串(name & status
  2. 根据status另一个SQL请求被开除得到的错误信息这在status有一定的价值的对象 - >结果是变化的(msg)串的数目,但至少一个
  3. 返回他们的名称,状态和任何错误信息的对象列表

这里是(modifyed和缩短)代码:

Vector<String> errMsgList = new Vector<String>(); 

    Connection conn = null; 
    ResultSet rslt = null; 
    ResultSet errors = null; 

    try 
    { 
     conn = DBTransaction.begin(); 

     String sql = " ";//SQL statement to get all objects 

     rslt = DBSQLUtil.executeQuery(sql.toString(), conn); 
     while (rslt.next()) 
     { 
      String objectName = rslt.getString(1); 
      String status = rslt.getString(2); 

      if (status.equals("INVALID")){ 


       String errorSql = " "; //SQL statement to get errorMessage of current object 

       errors = DBSQLUtil.executeQuery(errorSql.toString(), conn); 

       while(errors.next()){ 
        errMsgList.add(errors.getString(1)); 
       }     
      } 
      String[] entry = { objectName, status }; 
     } 
     return;//return structure with name, status and messages of the object 
    } 
    catch (SQLException e) 
    { 

    } 
    finally 
    { 
     DBSQLUtil.closeResultSet(rslt); 
     DBTransaction.rollback(conn); 
    } 

由于这样的事实的错误消息的量而变化,这些消息被添加到Vector<String>。单个对象的namestatus存储在String[]结构中。如何将对象的名称和状态与所有可选的错误消息列表结合在一起?

+0

我建议你应该通过一个对象/类部分工作java-tutorial – JohnnyAW

回答

0

使用的bean类:

Class Struct{ 
    private String name; 
    private String status; 
    private Vector<String> errMsgList; 
    public Struct(String name, String status, Vector<String> errMsgList){ 
     this.name = name; 
     this.status = status 
     this.errMsgList= errMsgList 
    } 
} 

然后当你从数据库中获取DATAS:

Vector<Struct> structs = new Vector<>(); 
while(errors.next()){ 
    errMsgList.add(errors.getString(1)); 
} 
Struct struct = new Struct(objectName, status, errMsgList); 
structs.add(struct); 
. 
. 
. 

return structs; 

:d

1

我会建议你创建下面的属性bean类,并返回bean类

public class StatusDTO { 
    private String objectName; 
    private String status; 
    private Vector<String> errorMsgList = new Vector<String>(); 

    getters..... 
    setters..... 
} 

的阵列中的所有属性添加到POJO类,并返回XYX []数组。我希望这会解决你的问题。

+0

此外,您不应该为'Vector'和数组建议,而应该使用'List'和'ArrayList'来完成这些任务。 –

+0

@RolandIllig我刚刚提供了高级别的解决方案,解决了将值设置为bean的具体问题以及如何将值返回给调用方法。而且在约翰的问题中,它的高级代码片段并不是完整的源代码。 – GrabNewTech

相关问题