أول مرة هنا ؟ تفحص قواعد المشاركة و معلومات أخرى عن عرب overflow!
x

كيف يمكنني الربط بين قاعدة بيانات Mysql و Android App

+2 صوت
1,706 مشاهدات

أريد الربط بين قاعدة بيانات Mysql و Android App ، ولكن لا أعرف كيف يكون ذلك فهل يوجد كود يساعدني على ذلك

2 إجابة

+2 صوت

نظام التشغيل أندرويد لا يوفر طريقة مباشرة للاتصال بقاعدة بيانات MySql للأسف , الحل هو أن تعمل webservice تقوم بالنداء عليها من الأندرويد و هذه الويب سيرفيس تتعامل مباشرة مع قاعدة البيانات و هذا مثال بسيط على ذلك ل ويب سيرفيس تتعامل مع الاندرويد باستخدام json

تأكد من وجود INTERNET PERMISSION فى ملف ال Manifest

كما يلى : -

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

اصنع class يقوم بالتعامل مع http server باستخدام json كما يلى :-

  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;
      }
    }

فى ال MainActivity
اصنع object من JSONfunction class ثم قم بوضع ال URL لكى تحصل على البيانات فى صورة argument

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

و أخيرا قم بتفسير البيانات

وجدت مشكلة عند تشغيل التطبيق ConcurrentModificationException
استخدم :-


Use an Iterator and call remove():

Iterator<String> iter = myArrayList.iterator();

while (iter.hasNext()) {
    String str = iter.next();

    if (someCondition)
        iter.remove();
}
0 صوت

توجد مكتبة volley المقدمة من شركة جوجل اللتي تعمل على تسهيل التواصل بين التطبيق والسيرفر طبعا بوجود ال api حيث انها سريعة وتختصر الكثير من الوقت بدل قضاء اوقات طويلة بكتابة اكواد الاتصال بالapi
وهذا شرح لكيفية تركيبها
http://www.androidhive.info/2014/05/android-working-with-volley-library-1/
وهذا مثال للاستخدام
http://www.androidhive.info/2014/09/android-json-parsing-using-volley/

Araboverflow أهلا بكم فى عرب Overflow
المجتمع العربى للأسئلة و الأجوبة التقنية.

أحدث الشارات

100 نقطة
- محمد أحمد -
سؤال ملحوظ
- h98 -
سؤال ذائع الصيت
- Zaid -
سيرة ذاتية
- 0xzidane -
100 نقطة
- 0xzidane -
...