如何通过 Android 应用与外部 SQL 数据库通信?

我有一个 Android 应用程序,它通过 PHP 脚本从外部 SQL 数据库写入/读取。数据库和 PHP 脚本都托管在 Amazon Web Services (AWS) 上。应用程序向 PHP 脚本发送 HTTP 请求,PHP 脚本与数据库进行通信。


有没有更简单的方法将应用程序与数据库连接起来?我觉得这种方法有点hacky。或者这是如何完成的?是否可以完全避免 PHP 脚本,只在应用程序中通过 Java 与数据库通信?


下面是获取数据库中所有内容的代码。


php脚本:


$servername = "";

$username = "";

$password = "";


$conn = mysqli_connect($servername, $username, $password);


if (!$conn) {

    die("Connection failed: " . mysqli_connect_error());

}


$sql = "SELECT * FROM table";

$result = $conn->query($sql);


if($result->num_rows > 0){

    while($row = $result->fetch_assoc()){

        echo "rowname1: " . $row["rowname1"]. " rowname2: " . $row["rowname2"] . "\n";

    }

} else {

    echo "0 results";

}


$conn->close();

Java 代码:


requestQueue = Volley.newRequestQueue(this);

    String url = "";

    StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {

        @Override

        public void onResponse(String response) {

            textDatabase.setText(response);

        }

    }, new Response.ErrorListener() {

        @Override

        public void onErrorResponse(VolleyError error) {

            textDatabase.setText(error.toString());

        }

    });


    requestQueue.add(stringRequest);


海绵宝宝撒
浏览 90回答 1
1回答

开满天机

这是通过 API 做到这一点的正确方法。Frontend&nbsp;Application&nbsp;(Android,&nbsp;iOS,&nbsp;browser)&nbsp;<->&nbsp;API&nbsp;<->&nbsp;Backend您可以直接连接到数据库,但不应该。为此,您必须在应用程序中输入用户名和密码。这样做,你如何防止用户连接你的数据库并改变他们想要的一切?反对这种方法的观点还有很多。寻找REST APIs,或者也许GraphQL。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java