2017-10-16 39 views
-1

J'ai besoin de lire les données de la base de données (MySQL) et de les transférer au client. Puis-je transférer l'objet de type TopickOfVote au client ou uniquement via String? écrivain et lecteur:Client-serveur. Comment transférer au client, un cours personnalisé?

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

Serveur:

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(); 
    } 
} 

Client:

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

De Étiez obtenez-vous '' writer' et reader'? Si vous devez les utiliser, vous devez utiliser la sérialisation de texte (vous pouvez utiliser JSON par exemple). Si vous avez un 'InputStream' et que vous pouvez faire' TopicOfVote' 'Serializable' alors vous pouvez utiliser' ObjectInputStream' et '' ObjectOutputStream''. – Oleg

+0

Merci! Bizarrement. Mais, avant, cela ne fonctionnait pas avec 'ObjectInputStream' et' ObjectOutputStream' –

+0

'Cela n'a pas fonctionné' n'est pas une description du problème. Si c'est ce que vous voulez demander, demandez-le correctement. – EJP

Répondre

0

Puis-je transférer en quelque sorte l'objet de type TopickOfVote au client

Oui, avec la sérialisation d'objet, fourni TopickOfVote implémente Serializable et fait toutes les autres bonnes choses associées, telles que la définition d'un private static final long serialVersionUID, et n'évolue pas de façon incompatible.

ou uniquement via String? Écrivain et lecteur:

Oui, avec XML, JSON, ...