1

我已将从 java 中的数据库检索到的值保存到 arraylist。我使用了一个类将数据保存到数组列表中,如下所示。

    ArrayList<NewSms> details = new ArrayList<NewSms>();
    try{
        Statement query = conn.createStatement();
        ResultSet result = query.executeQuery("Select `senderAddress,message,linkid from sdp_smsincoming where status=0 AND smsServiceActivationNumber =1234 ");`

        while(result.next()){
            String address = result.getString("senderAddress");
            String message = result.getString("message");
            String linkid = result.getString("linkid");

            NewSms smsdetails = new NewSms();
            smsdetails.set_address(address);
            smsdetails.set_message(message);
            smsdetails.set_linkid(linkid);
            details.add(smsdetails);;
        }
    }

但是我现在想从程序中的另一个类中单独检索每行的值。我该怎么做?我的意思是单独获取数组列表中每行的地址、消息和链接 ID。

4

3 回答 3

5

但是我现在想从程序中的另一个类中单独检索每行的值。我该怎么做?

您只需访问NewSms列表中的每个。要按索引访问一个,您可以使用:

NewSms sms = details.get(2); // Or whatever
// Now access the properties of sms

或者要依次访问它们中的每一个,请使用增强的 for 循环:

for (NewSms sms : details) {
    // Now access the properties of sms
}

请注意,要遵守 Java 命名约定,您的NewSms类应该具有诸如getAddress, setAddress- not之类的方法set_address

另请注意,您需要关闭结果集/语句/连接 - 如果您使用的是 Java 7,则可以使用 try-with-resources 语句;否则你应该使用finally块。

编辑:如果您的问题实际上只是返回列表,那很容易:

public List<NewSms> loadSmsDetails() {
    // Code as before...

    return details;
}

然后从你的其他班级调用它:

// Where repository is a reference to an instance of the class containing the above method
List<NewSms> allDetails = repository.loadSmsDetails();
于 2013-08-28T08:32:29.397 回答
0

但是我现在想从程序中的另一个类中单独检索每行的值

您需要将数组列表传递给另一个类并在那里对其进行迭代以获取各个元素。这个想法是使用一个通用的 araylist - 存储结果集中的值并在另一个类中迭代它们。

于 2013-08-28T08:42:49.103 回答
0
for(NewSms smsdetails:details){ 
String address = smsdetails.get_address();
String message = smsdetails.get_message();
String linkId = smsdetails.get_linkid();
}
于 2013-08-28T08:34:27.747 回答