如何在JAVA中存储2个字符串和一个相关数组/向量?

如何在JAVA中存储2个字符串和一个相关数组/向量?,java,Java,我目前正试图在一个结构或数据类型中保存来自两个不同SQL语句的一些相关信息。 情况就是这样: 第一个SQL请求获取所有对象-->结果始终为2个字符串(name&status) 根据状态的不同,将触发另一个SQL请求,以获取对象的错误消息,这些对象在状态-->中具有特定值-->结果是不同数量的字符串(msg),但至少有一个 返回对象列表及其名称、状态和任何错误消息 以下是(修改和缩短的)代码: Vector errMsgList=new Vector(); 连接conn=null; 结果集rslt

我目前正试图在一个结构或数据类型中保存来自两个不同SQL语句的一些相关信息。
情况就是这样:

  • 第一个SQL请求获取所有对象-->结果始终为2个字符串(
    name
    &
    status
  • 根据
    状态
    的不同,将触发另一个SQL请求,以获取对象的错误消息,这些对象在
    状态
    -->中具有特定值-->结果是不同数量的字符串(
    msg
    ),但至少有一个
  • 返回对象列表及其名称、状态和任何错误消息
  • 以下是(修改和缩短的)代码:

    Vector errMsgList=new Vector();
    连接conn=null;
    结果集rslt=null;
    结果集错误=null;
    尝试
    {
    conn=DBTransaction.begin();
    String sql=“”;//获取所有对象的sql语句
    rslt=DBSQLUtil.executeQuery(sql.toString(),conn);
    while(rslt.next())
    {
    String objectName=rslt.getString(1);
    字符串状态=rslt.getString(2);
    if(status.equals(“INVALID”){
    String errorSql=“”;//获取当前对象的errorMessage的SQL语句
    errors=DBSQLUtil.executeQuery(errorSql.toString(),conn);
    while(errors.next()){
    errMsgList.add(errors.getString(1));
    }                   
    }
    字符串[]项={objectName,status};
    }
    return;//返回包含对象名称、状态和消息的结构
    }
    捕获(SQLE异常)
    {
    }
    最后
    {
    DBSQLUtil.closeResultSet(rslt);
    DBTransaction.rollback(conn);
    }
    

    由于错误消息的数量不同,因此将消息添加到
    向量中。单个对象的
    名称
    状态
    存储在
    字符串[]
    结构中。如何将对象的名称和状态与所属的可选错误消息列表结合起来?

    我建议您创建一个具有以下属性的bean类,并返回bean类的数组

    public class StatusDTO {
       private String objectName;
       private String status;
       private Vector<String> errorMsgList = new Vector<String>();
    
       getters.....
       setters.....
    }
    
    公共类状态到{
    私有字符串objectName;
    私有字符串状态;
    私有向量errorMsgList=新向量();
    吸气剂。。。。。
    二传手。。。。。
    }
    
    将所有属性添加到pojo类并返回xyx[]的数组。我希望这能解决您的问题。

    使用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
        }
    }
    
    类结构{
    私有字符串名称;
    私有字符串状态;
    私有向量errMsgList;
    公共结构(字符串名称、字符串状态、向量errMsgList){
    this.name=名称;
    this.status=状态
    this.errMsgList=errMsgList
    }
    }
    
    然后,当您从数据库中获取数据时:

    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;
    
    Vector structs=new Vector();
    while(errors.next()){
    errMsgList.add(errors.getString(1));
    }
    Struct Struct=新结构(objectName、status、errMsgList);
    structs.add(struct);
    .
    .
    .
    返回结构;
    

    :D

    我建议您进一步学习java教程的对象/类部分,而不是建议使用
    Vector
    和数组,对于这类任务,您应该采用使用
    List
    ArrayList
    的现代方法。@RolandIllig我刚刚为设置bean值以及如何将值返回调用方法的特定问题提供了高级解决方案。此外,在john的问题中,它的高级代码片段不是完整的源代码。
    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;