通过Jframe GUI使用相同的方法来收集mysql数据,但不能通过restAPI

问题描述

至少可以说这令人困惑。我已经设置了restAPI,用于从MysqL表中收集数据。我还拥有一个单独的GUI,可以直接针对本地MysqL数据库测试我的方法,以确保在继续操作之前它们可以正常工作。我正在通过GUI和API以完全相同的方式访问完全相同的方法。唯一的区别在于它如何返回数据。通过GUI访问该方法时,一切正常。但是,通过我的API访问该列表时,该列表不会被填充,而是保持为空。附加来自我的API,GUI和它们都将访问的方法代码,尽管结果会有所不同。

@GET
@Path("/get")
@Produces(MediaType.APPLICATION_JSON)
public Response getAllJson() throws Exception{
ToolBox tx = new ToolBox();
ArrayList<Actors> ac = tx.acList();
return Response.ok(ac).build();
}

public ArrayList<Actors> acList() throws Exception {
    ArrayList<Actors> acList = new ArrayList<Actors>();
    try {
        getConnection();            
        PreparedStatement st = conn.prepareStatement("SELECT * FROM Actors");            
        ResultSet rst = st.executeQuery();
        Actors ac;           
        while (rst.next()) {
            ac = new Actors(rst.getInt("ActorId"),rst.getString("fName"),rst.getString("eName"),rst.getInt("Age"),rst.getInt("NoOfCredits"),rst.getString("Country"));
            acList.add(ac);   
        }
    } catch (Exception e) {  
        e.printstacktrace();
    }
    return acList;  
}
    

private void RESTcallerActionPerformed(java.awt.event.ActionEvent evt) {                                           
 try {
        ToolBox tx = new ToolBox();
        ArrayList<Actors> ac = tx.acList();
        DefaultTableModel mdl = (DefaultTableModel)MainTable.getModel();
        Object[] row = new Object [6];
        mdl.setRowCount(0);
        for (int i=0; i<ac.size(); i++){                
            row[0] = ac.get(i).getActorId();
            row[1] = ac.get(i).getfName();
            row[2] = ac.get(i).geteName();
            row[3] = ac.get(i).getAge();
            row[4] = ac.get(i).getNoOfCredits();
            row[5] = ac.get(i).getCountry();
            mdl.addRow(row);
        }
    } catch (Exception ex) {
        Logger.getLogger(MF.class.getName()).log(Level.SEVERE,null,ex);
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)