Java Android连接到Mysql数据库
我无法在Android应用程序中连接到远程mysql数据库,因为该应用程序找不到合适的驱动程序Java Android连接到Mysql数据库,java,android,mysql,Java,Android,Mysql,我无法在Android应用程序中连接到远程mysql数据库,因为该应用程序找不到合适的驱动程序 apply plugin: 'com.android.application' android { compileSdkVersion 26 defaultConfig { multiDexEnabled true vectorDrawables.useSupportLibrary = true applicationId "com.e
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
applicationId "com.example.test.testapp"
minSdkVersion 20
targetSdkVersion 21
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
//https://stackoverflow.com/questions/37048731/gson-library-in-android-studio/37049457
implementation 'com.google.code.gson:gson:2.8.2'
implementation 'com.android.support:design:26.1.0'
// implementation 'org.mariadb.jdbc:mariadb-java-client:2.1.2'
compile 'com.android.support:support-annotations:27.1.1'
// implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
// implementation files('libs/mysql-connector-java-5.1.46.jar')
// compile project(':mysql-connector-java-5.1.46')
// compile project(':libs/mysql-connector-java-5.1.46.jar')
implementation files('libs/mysql-connector-java-5.1.46-bin.jar')
}
这是发生异常的java类
public ServerSave() throws SQLException, ClassNotFoundException {
// load and register JDBC driver for MySQL
Class.forName("com.mysql.jdbc.Driver");
this.conn = getConnection("jdbc:mariadb://remote.host.example/" + SQL_DATABASE, SQL_USER_NAME, SQL_PASSWORD);
}
我认为这是一个配置问题,但我不知道如何解决它。
我将mysql jar文件复制到android项目文件夹中的libs目录。
我正在为这个项目使用android studio
谢谢你的帮助。我没有直接解决它。我创建了一个与mysql数据库对话的RESTAPI 将Android应用程序远程连接到MySQL通常是一个非常糟糕的主意,因为将MySQL实例暴露在普通互联网上是非常危险的。是否可以在应用程序和数据库之间构建API层?我的想法是使用mysql用户访问权限和存储过程来处理这个问题。这是对数据库安全模型的用途和功能的常见误解。API可以实现非常复杂的访问控制系统。MySQL本身真的不能。它不打算作为公共服务公开。存储过程没有足够的保护。系统中最有价值的资产是数据库,应该尽可能地锁定和保护它。如果您给予直接访问权,您的风险将成倍增加。@AceofSpade为了进入您的数据库,您已经在APK中向您的数据库提供了密码。在那一点上你就完蛋了。这是你永远不应该做的第一件事。我在api中弄乱了一些东西,而不是数据库中有一个bug,这不是更可能吗?当然,两者兼用会更好。