Подключение приложения Android к sql server через sql server express

#android #sql-server

#Android #sql-сервер

Вопрос:

Я искал способ подключения приложения Android к SQL server. Пробовал разные коды и спрашивал многих программистов. Ничего не получилось. Похоже, проблема в URL-адресе подключения.

Приложение, которое я должен создать, включает в себя создание некоторых таблиц sql. Например, в начале ему необходимо сверить данные для входа, предоставленные пользователем, с этими данными в одной из этих таблиц. В дополнение к Android Studio мне было предложено установить и использовать SQL server Express (больше ничего).

Используя SQL server express 2008 R2, я создал базу данных на своем компьютере и таблицу. Подключение к серверу не сработало. Найденные мной коды всегда включали пароль и имя пользователя для подключения. Это обязательно? Я не получил имя пользователя для подключения при установке сервера. Для этого нужно было получить имя экземпляра и пароль.

Я искал информацию о параметрах URL-адреса подключения, чтобы исправить полученный URL-адрес. Не удалось найти то, что мне нужно изменить.

Я нашел код, в котором можно определить пароль и имя пользователя:

 private Connection conn;

    public MySQLConnection() throws SQLException {

        System.out.println("At MySQLConnection()");

        String driverName = "com.mysql.jdbc.Driver";
        try {
            Class.forName(driverName);
            Properties props = new Properties();
            props.setProperty("user","fred");
            props.setProperty("password","secret");
            props.setProperty("ssl","true");

            String url = "jdbc:mysql://zivpc/workers?user=fredamp;password=secretamp;ssl=true";
            Connection conn = DriverManager.getConnection(url);
            this.conn = DriverManager.getConnection(url);

            System.out.println("connected");


        } catch (ClassNotFoundException e) {
            System.out.println(e);
        }
  

Попытка подключения приводит к следующему исключению: CommunicationsException: Communications link failure .

Спасибо!

Комментарии:

1. Во-первых, JDBC не предназначен для использования с мобильными устройствами, где соединения могут прерываться в случайных точках, пожалуйста, пересмотрите то, что вы делаете. Помимо этого, ваш код предназначен для MySQL. MySQL не является SQL Server.

2. Задание, которое я получил, связано с подключением приложения Android к базе данных sql через sql server express. Есть ли правильный способ сделать это, например, с помощью чего-то другого, кроме jdbc?

3. Типичный способ связи с сервером из мобильного клиента — через веб-службу. Веб-служба взаимодействует с базой данных; приложение для Android или iOS взаимодействует с веб-службой.

Ответ №1:

Вам понадобится API (REST и т. Д.), работающий на веб-сервере, При этом этот веб-сервер имеет доступ к защищенному брандмауэром серверу базы данных. И аутентификация для вашего API, чтобы у вас не было случайных людей, выполняющих DDoS-атаку на вашу службу и базу данных.

Ваш сервер базы данных вообще не должен быть подключен к Интернету и не должен быть доступен напрямую с вашего клиента. Также не следует отправлять SQL-запросы непосредственно от клиента к серверу базы данных. Ваш API предоставляет набор функциональных возможностей и очень ограничен в отношении того, что клиент может запрашивать и получать.

Мобильное приложение -> интернет -> веб-сервер -> брандмауэр -> SQL Server

Подробности «как мне это реализовать» намного выходят за рамки Stack Overflow. В Интернете доступно множество руководств и пошаговых руководств. Выбирайте с умом.

Дополнительное примечание: вы говорите, что используете SQL Server 2008R2 Express Edition. Имейте в виду, что эта версия SQL Server будет обновлена менее чем через три месяца. Никто не должен был заниматься новой разработкой на нем в течение последних 5 лет. Будьте осторожны, принимая советы от тех, кто «руководил» вами при установке этой версии в 2019 году.

Комментарии:

1. Спасибо. Я хочу избежать траты времени и усилий, насколько это возможно, поэтому я хотел бы знать, полезно ли, по вашему мнению, руководство по следующей ссылке для добавления веб-службы в приложение adroid, которое будет использоваться для подключения sql server: youtube.com/watch?v=QTO5a1IeBl8