从Android应用连接到MariaDB

时间:2018-11-15 17:08:45

标签: android-studio jdbc mariadb mariadb-connect-engine mariadb-connector-c

免责声明:我知道人们通常不这样做,出于成本原因,我正在使用SQL数据库,而且我对编程还是比较陌生的。

我正在尝试从Android Studio应用程序向我的MariaDB数据库发送SQL脚本。我目前正在为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);
        }

    }

1 个答案:

答案 0 :(得分:0)

您需要确保使用正确的驱动程序(连接器)。下载它,然后将其导入Android Studio(libs文件夹),然后将以下内容添加到您的应用程序构建包中:

implementation files('libs/mariadb-java-client-1.8.0.jar')

这是我使用的Connector / 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()