#java #android #sql-server #jdbc #sql-server-2019
#java #Android #sql-сервер #jdbc #sql-сервер-2019
Вопрос:
Я пытаюсь подключить свое приложение Android к серверу MSSQL, который установлен на моем ПК. Ранее мне удавалось их подключить, но по какой-то причине теперь я получаю сетевую ошибку. Я знаю, что прямое соединение не должно быть установлено, и следует использовать веб-сервис, но мне необходимо установить соединение JDBC с базой данных.
Ошибка, которую я получаю, это:
Сетевая ошибка IOException: не удалось подключиться к / 192.168.0.101 (порт 1433) из / 192.168.0.100 (порт 37632)
Я настроил свой сервер MSSQL на прослушивание порта 1433.
Это класс подключения.
package com.example.resourceapplication.LogIn;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import android.annotation.SuppressLint;
import android.os.StrictMode;
import android.util.Log;
public class ConnectionClass {
static String ip = "192.168.0.101";
static String classs = "net.sourceforge.jtds.jdbc.Driver";
static String db = "EKANBAN";
static String username = "root";
static String password = "root";
public static Connection CONN(){
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
Connection conn = null;
String ConnURL = null;
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
ConnURL = "jdbc:jtds:sqlserver://" ip ";"
"databaseName=" db ";user=" username ";password="
password ";";
DriverManager.setLoginTimeout(2);
conn = DriverManager.getConnection(ConnURL);
Log.d("Hello","It Worked");
} catch (SQLException se) {
Log.e("ERRO", se.getMessage());
return null;
} catch (ClassNotFoundException e) {
Log.e("ERRO", e.getMessage());
return null;
} catch (Exception e) {
Log.e("ERRO", e.getMessage());
return null;
}
return conn;
}
}
Этот класс работал у меня раньше, но по какой-то причине сейчас не работает. Любая помощь будет оценена.
Комментарии:
1. Как вы тестируете? Эмулятор (на том же или другом компьютере с сервера MSSQL) или устройство (марка / модель / версия ОС) в той же сети? Проверяли ли вы с другого компьютера, доступен ли сервер MSSQL?
2. Проверьте настройки брандмауэра Windows, чтобы узнать, разрешены ли входящие подключения к tcp / 1433 из вашей локальной подсети, поскольку эмулятор Android работает на другом IP-адресе (192.168.0.100), чем ваш компьютер (169.168.0.101).
3. Вы не должны использовать драйверы JDBC на Android, вместо этого вы должны создать службу REST, которая является посредником между вашим приложением Android и базой данных.