Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Ứng dụng Android có thể kết nối trực tiếp với cơ sở dữ liệu mysql trực tuyến không

Có, bạn có thể làm điều đó.

Vật liệu bạn cần:

  1. WebServer
  2. Cơ sở dữ liệu được lưu trữ trong máy chủ web
  3. Và một chút kiến ​​thức về Android :)
  4. Các dịch vụ trang web (json, Xml ... vv) bất cứ thứ gì bạn thấy thoải mái

1. Trước tiên, hãy đặt quyền truy cập internet trong tệp kê khai của bạn

 <uses-permission android:name="android.permission.INTERNET" />

2. Tạo một lớp để tạo HTTPRequest từ máy chủ (tôi đang sử dụng json parisng để nhận các giá trị)

ví dụ:

    public class JSONfunctions {

    public static JSONObject getJSONfromURL(String url) {
        InputStream is = null;
        String result = "";
        JSONObject jArray = null;

        // Download JSON data from URL
        try {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(url);
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();

        } catch (Exception e) {
            Log.e("log_tag", "Error in http connection " + e.toString());
        }

        // Convert response to string
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            result = sb.toString();
        } catch (Exception e) {
            Log.e("log_tag", "Error converting result " + e.toString());
        }

        try {

            jArray = new JSONObject(result);
        } catch (JSONException e) {
            Log.e("log_tag", "Error parsing data " + e.toString());
        }

        return jArray;
    }
}

3. Trong MainActivity của bạn Tạo một đối tượng của lớp JsonFunctions và chuyển url dưới dạng đối số từ nơi bạn muốn lấy dữ liệu

ví dụ:

JSONObject jsonobject;

jsonobject = JSONfunctions.getJSONfromURL("http://YOUR_DATABASE_URL");

4. Và cuối cùng đọc jsontags và lưu trữ các giá trị trong danh sách mảng và sau đó hiển thị nó trong listview nếu bạn muốn

và nếu bạn có bất kỳ vấn đề nào, bạn có thể theo dõi blog này. blog này cung cấp các hướng dẫn Android tuyệt vời AndroidHive

Vì câu trả lời ở trên tôi đã viết từ lâu và bây giờ là HttpClient , HttpPost , HttpEntity đã bị xóa trong Api 23. Bạn có thể sử dụng mã bên dưới trong build.gradle (cấp ứng dụng) để tiếp tục sử dụng org.apache.http trong dự án của bạn.

android {
    useLibrary 'org.apache.http.legacy'
    signingConfigs {}
    buildTypes {}
}

hoặc Bạn có thể sử dụng HttpURLConnection như bên dưới để nhận phản hồi của bạn từ máy chủ

public String getJSON(String url, int timeout) {
HttpURLConnection c = null;
try {
    URL u = new URL(url);
    c = (HttpURLConnection) u.openConnection();
    c.setRequestMethod("GET");
    c.setRequestProperty("Content-length", "0");
    c.setUseCaches(false);
    c.setAllowUserInteraction(false);
    c.setConnectTimeout(timeout);
    c.setReadTimeout(timeout);
    c.connect();
    int status = c.getResponseCode();

    switch (status) {
        case 200:
        case 201:
            BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream()));
            StringBuilder sb = new StringBuilder();
            String line;
            while ((line = br.readLine()) != null) {
                sb.append(line+"\n");
            }
            br.close();
            return sb.toString();
    }

} catch (MalformedURLException ex) {
    Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
    Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
} finally {
   if (c != null) {
      try {
          c.disconnect();
      } catch (Exception ex) {
         Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
      }
   }
}
return null;

}

hoặc Bạn có thể sử dụng Thư viện của bên thứ 3 như Volley , Retrofit để gọi api dịch vụ web và nhận phản hồi, sau đó phân tích cú pháp bằng cách sử dụng FasterXML-jackson , google-gson .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chèn hàng loạt với SQLAlchemy ORM

  2. Cách lấy ngày và giờ hiện tại trong MySQL

  3. Đếm với điều kiện IF trong truy vấn MySQL

  4. Cách chuyển đổi ngày UTC sang múi giờ địa phương trong MySql Chọn truy vấn

  5. Cột không xác định MySQL trong mệnh đề ON