How to insert and retrieve data from wamp server database in Android Studio


नमस्कार दोस्तों, आज में आपको बताऊंगा की कैसे आप अपने लोकल डेटाबेस यानि wamp server localhost में insert और retrieve आपरेशन कैसे परफॉर्म कर सकते है. में आपको बहुत ही शार्ट और सिंपल कोड से ये एप्लीकेशन बनाना सिखाऊंगा. कई लोग पूरा इन्टरनेट छान मरते है पर उनको सही और सिंपल कोड नहीं मिल पता. पर में आपको बहुत ही आसानी से ये ऐप्प बनाना सिख दूंगा.

यहाँ पे इस विडियो में आप देख सकते है की आपकी ऐप्प केसी देखेगी..

पर याद रखिये आपको मेरा कोड बहुत समझदारी से कॉपी करना होगा, आपको पता होना चाहिए की क्या कॉपी करना है और क्या कॉपी नहीं करना. मेरा कोड एग्जेक्ट कॉपी करने से आपकी एप्लीकेशन नहीं चलेगी, तोह आपको पता होना चाहिए की कहा चेंज करना है.

इस एंड्राइड एप्लीकेशन को बनाने के लिए आपको 3 सॉफ्टवेर की ज़रूरत पड़ेगी:

  • Wamp Server
  • Android Studio
  • Genymotion (jo ki humara emulator hoga)

Wamp server डाउनलोड और इनस्टॉल करने के बाद अपने ब्राउज़र में localhost लिखिए.
How to insert and retrieve data from wamp server database in Android Studio
फिर phpmyadmin पे क्लिक करे.
How to insert and retrieve data from wamp server database in Android Studio
phpmyadmin में जाने के बाद आपको डेटाबेस और टेबल बना पड़ेगा.

मेरे एप्लीकेशन में डेटाबेस का नाम dbtest2 है और टेबल का नाम persons है.

टेबल persons में 3 ऐट्रिब्यूट्स है:
How to insert and retrieve data from wamp server database in Android Studio
टेबल बनाने के बाद आपको 2 php स्क्रिप्ट बनानी पड़ेगी, एक डाटा insert करने के लिए और दूसरी डाटा retrieve करने के लिए.

ये दोनों php स्क्रिप्ट आपको C:\wamp\www डायरेक्टरी के अंदर बनानी पड़ेगी. मतलब आपको wamp फोल्डर के अंदर जो www वाला फोल्डर है उसके अंदर ये दोनों php फाइल बनानी पड़ेगी.

सबसे पहले आप insert_db.php स्क्रिप्ट बनाइये. इसका कोड निचे दिया है.


<?php define('HOST','localhost'); define('USER','root'); define('PASS',''); define('DB','dbtest2'); $con = mysqli_connect(HOST,USER,PASS,DB); $name = $_POST['name']; $address = $_POST['address']; $sql = "insert into persons (name,address) values ('$name','$address')"; if(mysqli_query($con,$sql)){ echo 'success'; } else{ echo 'failure'; } mysqli_close($con); ?>

इसके बाद retrive_db.php बनाइये.


<?php error_reporting(E_ALL ^ E_DEPRECATED); //define('HOST','localhost'); //define('USER','root'); //define('PASS',''); //define('DB','dbtest2'); $con=mysql_connect("localhost","root",""); mysql_select_db("dbtest2",$con); $r=mysql_query("select name from persons where 1"); while($row=mysql_fetch_array($r)) { $out[]=$row; } print(json_encode($out)); mysql_close($con); ?>

ये तोह हो गया डेटाबेस से रिलेटेड काम.

तोह चलिए अब बना लेते है हमारी एंड्राइड एप्लीकेशन.

आप एंड्राइड स्टूडियो ओपन करके प्रोजेक्ट बना लीजिये और उसमे आप empty activity सेलेक्ट करिये.

तोह में आपको MainActivity.java और activity_main.xml का कोड दे रहा है और उसको अपनी समझदारी के हिसाब से छोप कर लेना. 😜

//MainActivity.java

package com.example.karankumarkanathe.demo2;

import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;


public class MainActivity extends ActionBarActivity {

    private EditText editTextName;
    private EditText editTextAdd;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        editTextName = (EditText) findViewById(R.id.editTextName);
        editTextAdd = (EditText) findViewById(R.id.editTextAddress);


    }

    public void retrive(View view)
    {
        Intent intent=new Intent(MainActivity.this,Main2Activity.class);
        startActivity(intent);
    }

    public void insert(View view){
        String name = editTextName.getText().toString();
        String add = editTextAdd.getText().toString();

        insertToDatabase(name,add);
    }

    private void insertToDatabase(String name, String add){
        class SendPostReqAsyncTask extends AsyncTask<String, Void, String> {
            @Override
            protected String doInBackground(String... params) {
                String paramUsername = params[0];
                String paramAddress = params[1];


                String name = editTextName.getText().toString();
                String add = editTextAdd.getText().toString();

                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                nameValuePairs.add(new BasicNameValuePair("name", name));
                nameValuePairs.add(new BasicNameValuePair("address", add));

                try {
                    HttpClient httpClient = new DefaultHttpClient();
                    HttpPost httpPost = new HttpPost(
                            "http://10.0.3.2/insert-db.php");
                    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                    HttpResponse response = httpClient.execute(httpPost);

                    HttpEntity entity = response.getEntity();


                } catch (ClientProtocolException e) {

                } catch (IOException e) {

                }
                return "success";
            }

            @Override
            protected void onPostExecute(String result) {
                super.onPostExecute(result);

                Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();
                TextView textViewResult = (TextView) findViewById(R.id.textViewResult);
                textViewResult.setText("Inserted");
            }
        }
        SendPostReqAsyncTask sendPostReqAsyncTask = new SendPostReqAsyncTask();
        sendPostReqAsyncTask.execute(name, add);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

//activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:orientation="vertical" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Name" android:id="@+id/textView" />

    <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/editTextName" />

    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Address" android:id="@+id/textView2" />

    <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/editTextAddress" />

    <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Insert" android:onClick="insert" android:id="@+id/button" />

    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textViewResult" />

    <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Retrive" android:id="@+id/button2" android:onClick="retrive"/>
</LinearLayout>

अब आपको second activity बनानी होगी.

Main2Activity.java और activity_main2.xml दोनों का कोड निचे है. फिर से में आपको कहूंग अपनी समझदारी से कोड कॉपी कर लेना.😜

//Main2Activity.java

package com.example.karankumarkanathe.demo2;

import android.os.StrictMode;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.google.api.client.http.HttpResponse;

import org.apache.http.HttpEntity;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Main2Activity extends AppCompatActivity {

    ListView lv;
    String[] names={"abc","xyz","pqr","lmn"};
    InputStream is=null;
    String line=null;
    String result=null;
    String temp="";
    String[] arr;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
       lv=(ListView)findViewById(R.id.listView);
      // lv.setAdapter(new ArrayAdapter<String>(Main2Activity.this, android.R.layout.simple_list_item_1, names));

        StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);

        try {
            HttpClient httpClient= new DefaultHttpClient();
            HttpPost httpPost=new HttpPost("http://10.0.3.2/retrive_db.php");
            org.apache.http.HttpResponse response = httpClient.execute(httpPost);
            HttpEntity entity = response.getEntity();
            is=entity.getContent();

        }catch (Exception e) {
            System.out.println("Exception 1 caught");
        }

        try {
            BufferedReader reader= new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);

            StringBuilder sb=new StringBuilder();
            while ((line=reader.readLine())!=null)
                sb.append(line+"\n");

            result=sb.toString();
            is.close();

            System.out.println("--------------------Here is my data-----------------");
            System.out.println(result);
            System.out.println("Here is my data");



        }catch (Exception e){
                System.out.println("Exception 2 caught");
        }

        try{
            JSONArray jsonArray = new JSONArray(result);
            int count= jsonArray.length();
            for (int i=0;i<count;i++){
                JSONObject jsonObject=jsonArray.getJSONObject(i);
                temp+=jsonObject.getString("name")+":";
            }
            arr=temp.split(":");
            lv.setAdapter(new ArrayAdapter<String>(Main2Activity.this,android.R.layout.simple_list_item_1,arr));
        }catch (Exception e){
            System.out.println(" I am bored...");
            Log.e("BHAI YAHA"," GALATI HAI:" + e.getMessage());
        }
    }
}

//activity_main2.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.example.karankumarkanathe.demo2.Main2Activity">

    <ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/listView" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_marginTop="64dp" />
</RelativeLayout>

AndroidMainfest.xml में इन्टरनेट की परमिशन लेना मत भूलना.

अगर आपको कोई प्रोबले इस अप्प्लिकेश से रिलेटेड हो तोह कमेंट ज़रूर करना.



One Response

  1. Shreya September 5, 2017

Leave a Reply