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