Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从列表中以字符串形式存储每个字段数据?_Java_Sql_Sql Server_Jsp - Fatal编程技术网

Java 如何从列表中以字符串形式存储每个字段数据?

Java 如何从列表中以字符串形式存储每个字段数据?,java,sql,sql-server,jsp,Java,Sql,Sql Server,Jsp,我创建了一个java类,该类从数据库获取数据并添加到列表中。method dbd()返回列表 public class db { public List dbd() { List myList = new ArrayList(); try { Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc

我创建了一个java类,该类从数据库获取数据并添加到列表中。method dbd()返回列表

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。通过使用迭代器,我可以打印数据库中的所有字段数据

 <%
   db nw = new db();         
   Iterator it = nw.dbd().iterator();
   while (it.hasNext()) {
     out.println(it.next());
    }         

 %>      


***我需要将每个字段数据存储回单个字符串,如名称、地址、图像。。我该怎么办?

Java List提供了一个有序的集合。您所做的:您已经根据索引顺序向集合中添加了大量字符串。即,添加到列表中的每个新字符串将具有下一个索引。这意味着,如果数据库中有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++;
    }
个人而言,我希望以以下方式将此数据存储在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);
    }
ArrayList list=new ArrayList();
while(rs2.next()){
JSONObject obj=new JSONObject().put(“name_id”,rs2.getString(“name_id”)).put(“address”,rs2.getString(“address”).put(“image”,rs2.getString(“image”);
列表。添加(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");
    }
Iterator it=list.Iterator();
while(it.hasNext()){
JSONObject obj=it.next();
String name=obj.getString(“name_id”);
字符串地址=obj.getString(“地址”);
String image=obj.getString(“image”);
}

请格式化您的代码,不要对我们大喊大叫。我们不是聋子,你的问题是什么?你面临的错误是什么?没有错误。。但是这段代码会打印页面中的所有数据。但是我需要获取单个字段数据,并分别存储到字符串name_id、address、image和print中。