我已将从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);;
}
}
但是我现在想要从程序中的另一个类中每行单独检索值。我怎么能这样做?我个人意味着在arraylist中获取每行的地址,消息和linkid。
答案 0 :(得分: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
- 而不是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();
答案 1 :(得分:0)
for(NewSms smsdetails:details){
String address = smsdetails.get_address();
String message = smsdetails.get_message();
String linkId = smsdetails.get_linkid();
}
答案 2 :(得分:0)
但是我现在想要从每行单独检索值 程序中的另一个类
你需要将arraylist传递给另一个类并在那里迭代它以获得各个元素。我们的想法是使用一个通用的araylist - 来存储结果集中的值,并存储在另一个类中以迭代它们。