예제 #1
0
  public static synchronized Message execute_query(Connection con, String receiver, String sender) {
    CallableStatement callFunction = null;
    Message newMessage = new Message();
    try {

      // checking if the connection that is returning is not closed
      if (!con.isClosed()) {
        //				System.out.println("conencted!!");

        // prepare callable function
        callFunction = con.prepareCall(callableFunction);

        // setting the parameter for the callable function
        callFunction.setString(1, receiver);
        callFunction.setString(2, sender);

        callFunction.execute();
        ResultSet result = callFunction.getResultSet();
        result.next();
        if (result.getInt(7) == 1) {
          System.out.println("No message found!");
        } else {
          System.out.println(result.getString(1));
          newMessage.message = result.getString(1);
          newMessage.sender = result.getString(2);
          newMessage.reciever = result.getString(3);
          newMessage.messageID = UUID.fromString(result.getString(4));
          newMessage.timestamp = Timestamp.valueOf(result.getString(5));
        }

        return newMessage;
      }
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } finally {
      // close the database connection
      if (callFunction != null) {
        try {
          callFunction.close();
          //					System.out.println("Call function closed");
        } catch (SQLException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
      }
    }
    return null;
  }