【问题标题】:Client-server. How to transfer to the client, a custom class?客户端服务器。如何传递给客户端,自定义类?
【发布时间】:2017-10-16 01:21:01
【问题描述】:

我需要从数据库(MySQL)读取数据并传输到客户端。

我可以以某种方式将TopickOfVote 类型的对象传输到客户端还是仅通过字符串传输? 作家和读者:

writer = new PrintWriter(new OutputStreamWriter(clientAPP.getWriter()));
reader = new BufferedReader(new InputStreamReader(clientAPP.getReader()));

服务器:

 private void LoadOfTopics() throws SQLException {
    resultSet = statement.executeQuery("SELECT  * FROM  kursach.TopicOfVote");
    StringBuffer id;
    StringBuffer topic;
    while(resultSet.next()){
        TopicOfVote topicOfVote = new TopicOfVote();
        topicOfVote.setId(Integer.parseInt(resultSet.getString("idVote")));
        topicOfVote.setTopic(resultSet.getString("topic"));
        ResultSet ans = statement.executeQuery("SELECT  * FROM kursach.Answers_vote WHERE idVote=" + topicOfVote.getId());
        ArrayList<Answer> answers = new ArrayList<>();
        while (ans.next()){
            Answer answer = new Answer();
            answer.setId(Integer.parseInt(ans.getString("idAnswer")));
            answer.setAnswer(ans.getString("answer"));
            answer.setIdOfTopic(Integer.parseInt(ans.getString("idVote")));
            answers.add(answer);
        }
        topicOfVote.setAnswers(answers);
        writer.println(topicOfVote); // ???
        writer.flush(); 
        ans.close();
    }
}

客户:

    private void createPanelTopics(){
    try {
        writer.println(HandlerQueries.GET_VOTES + "?");
        writer.flush();
        reader.readLine();//?????
    } catch (IOException e) {
        e.printStackTrace();
    }
}

【问题讨论】:

  • 你从哪里得到writerreader?如果您必须使用它们,那么您需要使用文本序列化(例如,您可以使用 JSON)。如果您有InputStream 并且可以制作TopicOfVote Serializable,那么您可以使用ObjectInputStreamObjectOutputStream
  • 谢谢!奇怪。但是,之前,它不适用于 ObjectInputStreamObjectOutputStream
  • “它不起作用”不是问题描述。如果这就是您想问的问题,请适当地问。

标签: java object io client-server


【解决方案1】:

我能否以某种方式将 TopickOfVote 类型的 Object 传输给客户端

是的,使用对象序列化,只要 TopickOfVote 实现 Serializable 并执行所有其他相关的正确事情,例如定义 private static final long serialVersionUID,并且不会不兼容地发展。

还是只通过字符串?作家和读者:

是的,使用 XML、JSON、...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 2021-07-27
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多