如何解决通过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 举报,一经查实,本站将立刻删除。