Java 从mysqldatabase填充selectbox

Java 从mysqldatabase填充selectbox,java,mysql,eclipse,jsp,Java,Mysql,Eclipse,Jsp,我需要从数据库填充选择框。与数据库的连接成功,我可以检索并插入数据库。我尝试了以下填充选择框的代码。但显示错误“迭代器无法解析为类型”。 从数据库检索的Java代码是 package servicescheduler.pack; import java.text.*; import java.util.*; import java.sql.*; public class listObject { static Connection currentCon = null; St

我需要从数据库填充选择框。与数据库的连接成功,我可以检索并插入数据库。我尝试了以下填充选择框的代码。但显示错误“迭代器无法解析为类型”。 从数据库检索的Java代码是

 package servicescheduler.pack;
 import java.text.*;
 import java.util.*;
 import java.sql.*; 

 public class listObject 
{
   static Connection currentCon = null;
String sql="select * from center_point_map where service_center='Radiology';";
public List getlist()
{
    ArrayList<String> list=new ArrayList<String>();
    try
    {
        currentCon = ConnectionManager.getconnection(); 
    }
    catch (Exception ex)
    { 
        System.out.println(" An Exception has occurred! " + ex);      
    }
    if(currentCon!=null)
    {
        System.out.println("You made it, take control your database now!");
        try
        {
            PreparedStatement prest = currentCon.prepareStatement(sql);
             ResultSet rs = prest.executeQuery();
             while(rs.next()) {
                    list.add(rs.getString(1));
                }
             System.out.println(list.get(0));
             prest.close();
             rs.close();
             return list;

        }
        catch (SQLException s)
        {
              System.out.println("SQL statement is not executed!"+s);

        }

        catch (Exception e)
        {
              e.printStackTrace();

        }
      }

      return list;
  }

}
package servicescheduler.pack;
导入java.text.*;
导入java.util.*;
导入java.sql.*;
公共类listObject
{
静态连接currentCon=null;
String sql=“选择*从服务的中心点地图”\u center='Radiology';”;
公共列表getlist()
{
ArrayList=新建ArrayList();
尝试
{
currentCon=ConnectionManager.getconnection();
}
捕获(例外情况除外)
{ 
System.out.println(“发生异常!”+ex);
}
如果(currentCon!=null)
{
println(“你成功了,现在就控制你的数据库吧!”);
尝试
{
PreparedStatement prest=currentCon.prepareStatement(sql);
ResultSet rs=prest.executeQuery();
while(rs.next()){
添加(rs.getString(1));
}
System.out.println(list.get(0));
prest.close();
rs.close();
退货清单;
}
捕获(SQLS异常)
{
System.out.println(“SQL语句未执行!”+s);
}
捕获(例外e)
{
e、 printStackTrace();
}
}
退货清单;
}
}
jsp代码是

      <%@page import="servicescheduler.pack.listObject"%>
      <%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org    /TR/html4 /loose.dtd">
  <html>
 <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
   <title>Insert title here</title>
</head>
<body>
<select>
<%
Iterator it = new listObject().getlist();
while(it.hasNext()) {
    out.write("<option value=\""+ it.getFieldA()+ "\">"+ it.getFieldB() +"\">");
}
%>
</select>
</body>
</html>

在此处插入标题
");
}
%>

我认为问题在于您正在将列表分配给您在jsp代码中创建的迭代器。请看一下

因此,守则应为:

Iterator it = new listObject().getlist().iterator();

我认为问题在于您正在将列表分配给您在jsp代码中创建的迭代器。请看一下

因此,守则应为:

Iterator it = new listObject().getlist().iterator();

该错误是由于导入语句引起的。您还需要在jsp中导入迭代器。默认包是
java.lang
。但这里我们使用的迭代器位于
java.util.*
中。 所以首先需要导入java.util包

<%@page import="java.util.*"%>

该错误是由于导入语句引起的。您还需要在jsp中导入迭代器。默认包是
java.lang
。但这里我们使用的迭代器位于
java.util.*
中。 所以首先需要导入java.util包

<%@page import="java.util.*"%>

jsp代码中有两个错误点

  • 第一个:无法从列表转换为迭代器。它应该是
    Iterator It=new listObject().getlist().Iterator();

  • 第二个:在while循环中,必须使用
    it.next()
    将指针位置更改为next


    • jsp代码中有两个错误点

      • 第一个:无法从列表转换为迭代器。它应该是
        Iterator It=new listObject().getlist().Iterator();

      • 第二个:在while循环中,必须使用
        it.next()
        将指针位置更改为next


      我想你可以从这里搭便车我想你可以从这里搭便车