android-studio - 从 Android 应用程序连接到 MariaDB
问题描述
免责声明:我知道人们通常不会这样做,出于成本原因,我使用 SQL 数据库,而且我对编程也比较陌生。
我正在尝试从我的 Android Studio 应用程序将 SQL 脚本发送到我的 MariaDB 数据库。我目前正在为 MariaDB 实现 Java 数据库连接 (JDBC) 驱动程序,但是我不确定我需要包含什么。
我访问了 JDBC MariaDB 驱动程序的下载网站,但是我可以选择下载许多 jar 文件。你怎么知道你需要哪一个,你怎么知道如何安装它/在哪里为 Android 安装?( https://downloads.mariadb.org/connector-java/2.3.0/ )
请注意,我的 Java 代码如下,我收到错误消息“找不到适合的驱动程序....”:
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if(result != null){
if(result.getContents() == null) {
Toast.makeText(this, "You cancelled the scanning", Toast.LENGTH_LONG).show();
}
else {
// Toast.makeText(this, result.getContents(), Toast.LENGTH_LONG).show();
String host = "jdbc:mariadb://HOST:PORT/DBNAME";
String username = "UNAME";
String password ="PWD";
try {
Connection con = DriverManager.getConnection( host, username, password );
Toast.makeText(this, result.getContents() + " - Success!", Toast.LENGTH_LONG).show();
} catch (Exception err) {
Toast.makeText(this, err.getMessage(), Toast.LENGTH_LONG).show();
}
}
}
else {
super.onActivityResult(requestCode, resultCode, data);
}
}
解决方案
您需要确保使用正确的驱动程序(连接器)。下载它,然后将其导入 Android Studio(libs 文件夹),然后将以下内容添加到您的应用构建 gradle:
implementation files('libs/mariadb-java-client-1.8.0.jar')
这是我使用的连接器/J(V1.8.0)......较新的似乎不兼容。示例代码:
// Create a connection
val myConn = DriverManager.getConnection("jdbc:mariadb://localhost:3306/DB?user=username&password=myPassword")
Class.forName("org.mariadb.jdbc.Driver") // Initialize it
// Now you create SQL statements
val sql01 : PreparedStatement? = (myConn!!.prepareStatement(getString(R.string.sql01)))
// Submit the query
reset = sql01.executeQuery()
推荐阅读
- openmpi - Openmpi 与 CUDA 安装问题
- javascript - json模式验证后如何使joi输出所有带有路径的错误?
- bitbake - 什么是新的 IMAGE_DEPENDS_wic_append_suffix 表示法?
- r - 在具有书面功能的列子集上使用 lapply?
- php - Laravel 控制器显示错误尝试获取非对象的属性“地址”
- react-native - 在本机反应(Expo)中显示blob图像
- dll - 使用 Visual Studio 代码生成 C/C++ DLL
- css - 样式跨度线 i if-var 关系中的悬停效果
- c# - 使用 PsExec 和 C# 运行远程程序 - 已连接但无法正常工作
- yii2 - 如何修复 PHP 致命错误 – yii\base\ErrorException Class 'Swift_Transport_EsmtpTransport' not found