我创建了一个java类,它从数据库中获取数据并添加到list.and methord dbd()返回List。
public class db {
public List dbd() {
List myList = new ArrayList();
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql:*********,*******");
Statement stmt2 = conn.createStatement();
ResultSet rs2 = stmt2.executeQuery(" SELECT name_id,address,image from data where name="kiran";" ) ;
while(rs2.next())
{
myList.add(rs2.getString("name_id"));
myList.add(rs2.getString("address"));
myList.add(rs2.getString("image"));
}
} catch (Exception ex) {
System.out.println(ex);
}
return myList;
}
public static void main(String args[]){
}
}
在这个jsp页面中我创建了db的对象作为nw。通过使用Iterator,我可以打印来自数据库的所有现场数据。
<%
db nw = new db();
Iterator it = nw.dbd().iterator();
while (it.hasNext()) {
out.println(it.next());
}
%>
**** 我需要存储每个字段数据以存储回姓名,地址,图片等个别字符串..什么我该怎么办?
答案 0 :(得分:1)
Java List提供有序集合。你做了什么:你已经根据索引顺序为你的集合添加了多少个字符串。即添加到列表中的每个新String都将具有下一个索引。这意味着,如果数据库中有3列,则连续添加“name_id”,“address”和“image”的值。一种解决方案可能是:
int ind = 0;
while (it.hasNext()) {
String name;
String address;
String image;
if (ind % 3 == 0)
name = it.next();
else if (ind % 3 == 1)
address = it.next();
else if (ind % 3 == 2)
image = it.next();
ind++;
}
Personnaly,我希望以下列方式将这些数据存储在ArrayList中:
ArrayList list = new ArrayList<JSONObject>();
while(rs2.next()){
JSONObject obj = new JSONObject().put("name_id", rs2.getString("name_id")).put("address", rs2.getString("address")).put("image", rs2.getString("image"));
list.add(obj);
}
在这种情况下,您将对JSON对象中的行进行分组,您可以检索如下数据:
Iterator<JSONObject> it = list.iterator();
while (it.hasNext()) {
JSONObject obj = it.next();
String name = obj.getString("name_id");
String address = obj.getString("address");
String image = obj.getString("image");
}