Я занимаюсь разработкой приложения для Android, в котором я хотел бы подключиться к удаленной базе данных, чтобы получать статистику всех пользователей. Я установил gradle и добавил зависимость для драйвера jdbc и добавил код Java. Однако, когда я запускаю мой эмулятор Android, он дает мне следующий результат:
driver loaded
SQLException: Could not create connection to database server.
SQLState: 08001
Error: 0
Как вы можете видеть, драйвер загружается, и это также не удаленный сервер, так как я настроил его на своем компьютере с помощью mysqlworkbench итам прекрасно работает. Я попробовал несколько решений в интернете, таких как обновление разъема до версии 8. Насколько я могу судить, это проблема с драйвером, поэтому я также попытался установить локальный jar, который дал ту же проблему
Любая помощь будет отличной!
build.gradle (приложение)
apply plugin: 'com.android.application'
// Add static analysis and jacoco
apply from: "$project.rootDir/gradle/static-analysis-tools/static-analysis.gradle"
apply from: "$project.rootDir/gradle/reports/jacoco.gradle"
android {
compileSdkVersion 29
buildToolsVersion "29.0.2"
defaultConfig {
applicationId "edu.chalmers.moonwalk"
minSdkVersion 15
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
testCoverageEnabled true
}
}
}
dependencies {
implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.17'
implementation fileTree(dir: 'libs', include: ['*.jar'])
//...
}
database.java
public class Database {
private String user = "myuser";
private String pass = "mypass";
private String dbClass = "com.mysql.jdbc.Driver";
private String dbDriver = "jdbc:mysql://remotemysql.com:3306/mydatabasename";
private Connection connection = null;
private QueryExecutor queryExecutor;
/**
* Connect to the database.
*/
public void connect() {
try {
Class.forName(dbClass).newInstance();
System.out.println("driver loaded");
} catch (Exception ex) {
System.out.println("something went wrong");
System.err.println(ex);
}
// Connection
try {
connection = DriverManager.getConnection(dbDriver, user, pass);
System.out.println("connected");
} catch (SQLException ex) {
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("Error: " + ex.getErrorCode());
}
}
}