теперь результат SQL-запроса находится внутри System.out.println (),
public class MyMain{
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://______8080/test-app","______","______");
PreparedStatement statement = con.prepareStatement("SELECT * FROM users");
ResultSet result = statement.executeQuery();
while(result.next()){
System.out.println(result.getString(1)+ " "+result.getString(2));
}
}
а как отправить результат клиенту? Как изображение или что-л. Я должен использовать «return» + «FileOutputStream»? Но это безопасность, если это большие данные?
Я могу проанализировать результат SQL на стороне сервера, а затем отправить его в массиве байтов, но как отправить его внутри http
Попробуйте изменить свой код, чтобы он соответствовал использованию Socket Programming.
Если вам нужно отправить результат SQL в HTTP. почему бы не использовать сервлет? stackoverflow.com/questions/7213541/what-is-java-servlet




Хорошо, здесь у вас может быть небольшая путаница. Вы показываете программу на Java, которая подключается к базе данных. Что вам нужно:
Вам нужны три вещи. Вы это хорошо видите?
Теперь программа на Java (1) соединяется с (2) на некоторых доменное имя / IP-адрес и порт, используя какой-то сетевой протокол. Скорее всего, это будет какой-то тип HTTP или HTTPS, но также может быть что-то вроде UDP или что-то еще.
Серверная программа слушает на порту для запросов и подключается к базе данных для получения данных. После получения он отвечает через тот же порт.
Программа, которую вы только что написали, выглядит как база для серверной программы (2). Вам нужно добавить часть прослушивателя сети. Затем вы можете написать свою клиентскую программу, которая будет вызывать ее (скорее всего, через HTTP).
Я выхожу за рамки своего вопроса, но у меня есть некоторые соображения по этой теме, и кое-что еще неясно - то, что все клиенты подключаются к серверу через один порт, не влияет на работу сервера? Т.е. неважно, сколько устройств подключено к серверу по одному порту? Я также нарисовал предполагаемый скелет своего приложения. не стыдно добавить в постановку?
Подключение к тому же порту? Нет, ни в коем случае. Серверы действительно хороши в этом. За кулисами есть несколько стратегий. По крайней мере, балансировщики нагрузки, циклические кластеры, перенаправление портов, неблокирующие порты ввода / вывода. Просто назвать несколько.
так что я могу настроить сервер на 8080, а клиенты для подключения к серверу на 8080? и я хотел узнать ваше мнение об архитектуре взаимодействия клиент-сервер в прикрепленном изображении
Да, это изображение выглядит хорошо. Более подробно, вам нужно выяснить, как сериализовать (на сервере) и десериализовать (на клиенте) данные. провод передает только биты и байты. Вот почему сериализация так полезна для преобразования структур данных в байты (на сервере) и байтов обратно в структуры данных (на клиенте) для их фактического использования.
Большое спасибо! Данные на сервере хранятся в формате blob, а клиент записывается в файл. но между сериализацией и десериализацией использования io-streams это нормальное явление? это как возврат в обычном методе? это то, что меня больше всего беспокоило - какой метод / способ отправки данных клиенту
Android не может напрямую подключиться к базе данных MySQL .. -> stackoverflow.com/questions/15732853/…