Java 使用远程对象从数据库填充组合框

Java 使用远程对象从数据库填充组合框,java,eclipse,tomcat,actionscript,flex3,Java,Eclipse,Tomcat,Actionscript,Flex3,我刚开始使用flex,希望从数据库中填充我的组合框,这是代码,我认为一切都是正确的,但它不起作用!!! 你能帮我找到我想念的东西吗 首先,这是我的类的代码,它从数据库中选择一列(intitulechapitre) public class RapportDao { public Connection conectar(){ Connection cn = null; String connectionUrl = "jdbc:sqlserver://loc

我刚开始使用flex,希望从数据库中填充我的组合框,这是代码,我认为一切都是正确的,但它不起作用!!! 你能帮我找到我想念的东西吗

首先,这是我的类的代码,它从数据库中选择一列(intitulechapitre)

public class RapportDao {

    public Connection conectar(){
        Connection cn = null;
        String connectionUrl = "jdbc:sqlserver://localhost\\SQLEXPRESS;databaseName=mabase;user=sa;password=sa;";

        try
        {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            cn = DriverManager.getConnection(connectionUrl);

        }
        catch(Exception ex)
        {
            System.out.println("Error : " + ex.getMessage());
        }
        return cn;
    }   
public ArrayList<Rapport> Selection() {


             Connection conn = conectar();  
             ArrayList<Rapport> list = null;

             if (conn!=null){

                 try{
                     Rapport pr = null;
                     String a;
                     list = new ArrayList<Rapport>();
                     String sql = "select IntituleChap from Rapport";
                     Statement st = conn.createStatement();
                     ResultSet rs=st.executeQuery(sql);
                     while (rs.next())
                     {
                         a=rs.getString("IntituleChap");
                         pr  = new Rapport();
                         pr.setIntituleChap(a);
                         list.add(pr);
                     }

             }
                 catch(SQLException e ) {

                     // System.out.print(e.getMessage());
                     System.out.println("Error = " + e.getMessage());
                    }

             }else
             {

             }
             return list;
    }
}
公共类{
公共连接连接器(){
连接cn=null;
字符串connectionUrl=“jdbc:sqlserver://localhost\\SQLEXPRESS;databaseName=mabase;user=sa;password=sa;“;
尝试
{
Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
cn=DriverManager.getConnection(connectionUrl);
}
捕获(例外情况除外)
{
System.out.println(“错误:+ex.getMessage());
}
返回cn;
}   
公共阵列列表选择(){
连接连接=连接();
ArrayList list=null;
如果(conn!=null){
试一试{
融洽关系pr=null;
字符串a;
列表=新的ArrayList();
String sql=“从融洽关系中选择IntituleChap”;
语句st=conn.createStatement();
结果集rs=st.executeQuery(sql);
while(rs.next())
{
a=rs.getString(“IntituleChap”);
pr=新的融洽关系();
pr.setintiulechap(a);
列表。添加(pr);
}
}
捕获(SQLE异常){
//System.out.print(如getMessage());
System.out.println(“Error=“+e.getMessage());
}
}否则
{
}
退货清单;
}
}
这是我为combobox编写的actionscript代码

  <fx:Script>
            <![CDATA[

    import spark.components.ComboBox;
    private function getTypeprojetResult(event : ResultEvent):void
                {
                    //Alert.show(""+event.result);
                } 
    ]]>

    <fx:Declarations>
            <s:RemoteObject id="RemoteRapportDao" 
                            destination="RapportDaoDest"
                            fault="onFault(event)">
                <s:method name="Selection" result="getTypeprojetResult(event);"/>
            </s:RemoteObject>
        </fx:Declarations>

<s:ComboBox id="cmbchap" x="130" y="223" width="172" height="19" dataProvider="{RemoteRapportDao.Selection.lastResult}"/>

  • RemoteDao:是RemoteObject的id
  • Selection():服务上的我的方法
我在组合框上没有任何东西!!!
谢谢大家!

您的代码是正确的,但您缺少的是在填充之前从服务中调用函数。 要做到这一点,您需要在应用程序完整处理程序中有一个侦听器

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
           xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/mx"
           xmlns:esri="http://www.esri.com/2008/ags"
           minWidth="1000" minHeight="700" applicationComplete="application1_applicationCompleteHandler(event)">
protected function application1_applicationCompleteHandler(event:FlexEvent):void
{
    RemoteRapportDao.Selection()
}