繁体   English   中英

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

[英]How to communicate with an external SQL database through an Android app?

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

是否有更简单的方法将应用程序与数据库连接? 我觉得这种方法有点怪异。 还是这是怎么做的? 是否可以完全避免使用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);

这是通过API执行此操作的正确方法。

Frontend Application (Android, iOS, browser) <-> API <-> Backend

您可以直接连接到数据库,但不能。 为此,您必须在应用程序中输入用户名和密码。 这样做,如何防止用户连接数据库并更改他们想要的所有内容? 还有许多反对这种方法的观点。

寻找REST APIsGraphQL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM