sql >> Database teknologi >  >> RDS >> Mysql

Forbind mySQL med Android

Her er eksemplet

EDIT: Opret først et databasenavn antag dbname i MySql i wamp eller på din server og opret en tabel med navnet emp_info hvor to felter tilføjes id og navn

Her er scenariet at indsætte ID og NAVN på medarbejder fra EDITTEXT til MYSQL-serverdatabasen

De globale variabler er

Strengnavn; Streng-id; InputStream er=null; Strengresultat=nul; String line=null; int kode;

Til aktivitetskode

import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.util.ArrayList;import org.apache.http.HttpEntity;import org.apache.http. HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import .apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.json.JSONObject;import android.app.Activity;import android.os.Bundle;import android.os.StrictMode; import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class add extends Activity { String name; Streng-id; InputStream er=null; Strengresultat=nul; String line=null; int kode; String tobed ​​=null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.add); StrictMode.ThreadPolicy policy =ny StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); final EditText e_id=(EditText) findViewById(R.id.editText1); final EditText e_name=(EditText) findViewById(R.id.editText2); Button insert=(Button) findViewById(R.id.button1); insert.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Autogenereret metode stub id =e_id.getText().toString(); name =e_name.getText().toString (); indsæt(); } }); }} 

Metode til at indsætte data

public void insert() { ArrayList nameValuePairs =new ArrayList(); // sæt værdierne af id og navn i den variabel nameValuePairs.add(new BasicNameValuePair("id",id)); nameValuePairs.add(new BasicNameValuePair("navn",navn)); prøv { HttpClient httpclient =new DefaultHttpClient(); // her er php-filen // til lokal brug, hvis du f.eks. bruger wamp, skal du bare lægge filen i www/projektmappen HttpPost httppost =new HttpPost("http://10.0.2.2/project/insert2.php"); // hvis filen er på serveren HttpPost httppost =new HttpPost("http://example.com/insert2.php"); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response =httpclient.execute(httppost); HttpEntity entity =response.getEntity(); er =enhed.getContent(); Log.e("pass 1", "forbindelse succes "); } catch(Undtagelse e) { Log.e("Fejl 1", e.toString()); Toast.makeText(getApplicationContext(), "Ugyldig IP-adresse", Toast.LENGTH_LONG).show(); } prøv { BufferedReader reader =new BufferedReader (ny InputStreamReader(is,"iso-8859-1"),8); StringBuilder sb =new StringBuilder(); while ((line =reader.readLine()) !=null) { sb.append(line + "\n"); } is.close(); resultat =sb.toString(); Log.e("pass 2", "forbindelse succes"); } catch(Undtagelse e) { Log.e("Fejl 2", e.toString()); } prøv { // få resultatet fra php-filen JSONObject json_data =new JSONObject(result); code=(json_data.getInt("kode")); if(kode==1) { Toast.makeText(getBaseContext(), "Inserted Successfully", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getBaseContext(), "Beklager, prøv igen", Toast.LENGTH_LONG).show(); } } catch(Undtagelse e) { Log.e("Fejl 3", e.toString()); Log.i("tagconvertstr", "["+resultat+"]"); } } 

her er insert2.php-filen

 

Anden redigering:-

For at læse data har jeg lavet asyntask

Her vises dataene i en listevisning.

public class read extends Activity { private String jsonResult;// // brug dette, hvis din fil er på serveren private String url ="http://exmaple.com/read.php"; // brug dette, hvis du lokalt bruger // private String url ="http://10.0.2.2/project/read.php"; privat listeVis listeVis; Kontekst kontekst; Strengnavn; Streng-id; InputStream er=null; Strengresultat=nul; String line=null; int kode; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.read); StrictMode.ThreadPolicy policy =ny StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); kontekst =dette; listView =(ListView) findViewById(R.id.listView1); accessWebService(); } 

accessWebService-metoden

 public void accessWebService() { JsonReadTask task =new JsonReadTask(); task.execute(ny streng[] { url }); } 

til JsonReadTask-klassen

privat klasse JsonReadTask udvider AsyncTask { // doInBackground Method interagerer ikke med UI @Override protected String doInBackground(String... params) {// nedenstående kode vil blive udført i baggrund HttpClient httpclient =new DefaultHttpClient(); HttpPost httppost =new HttpPost(params[0]); prøv { HttpResponse response =httpclient.execute(httppost); jsonResult =inputStreamToString( response.getEntity().getContent()).toString(); } catch (ClientProtocolException e) { e.printStackTrace(); Log.e("Fejl 12", e.toString()); } catch (IOException e) { Log.e("Fejl 22", e.toString()); e.printStackTrace(); } returner null; } private StringBuilder inputStreamToString(InputStream er) { String rLine =""; StringBuilder svar =new StringBuilder(); BufferedReader rd =new BufferedReader(ny InputStreamReader(er)); prøv { while ((rLine =rd.readLine()) !=null) { answer.append(rLine); } } catch (IOException e) { // e.printStackTrace(); Toast.makeText(getApplicationContext(), "Fejl..." + e.toString(), Toast.LENGTH_LONG).show(); } returnere svar; } // efter at doInBackground-metoden er udført, vil onPostExecute-metoden blive kaldt @Override protected void onPostExecute(String result) { // her kan du interagere med UI ListDrwaer(); } }// afslutte async-opgave 

ListDrawaer-metoden

 // build-hash-sæt til listevisning public void ListDrwaer() { List> werknemerList =new ArrayList>(); prøv { // at hente data fra serveren JSONObject jsonResponse =new JSONObject(jsonResult); if(jsonResponse !=null) { JSONArray jsonMainNode =jsonResponse.optJSONArray("emp_info"); // få samlet antal data i tabel for (int i =0; i  createEmployee(String name, String number) { HashMap ansatNameNo =new HashMap(); medarbejderNavnNr.put(navn, nummer); returner medarbejdernavnnr; } } 

og din read.php-filkode

  

og hvis du vil kontrollere din internetforbindelse, før du bruger denne indsættelse og læsning, brug denne metode .. dvs. indsæt denne metode i if else-sætning

 public boolean isOnline() { ConnectivityManager cm =(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo =cm.getActiveNetworkInfo(); if (netInfo !=null &&netInfo.isConnectedOrConnecting()) { return true; } returner falsk; } 

Til opdatering og sletning skal du bruge indsæt-metoden til at sende værdierne til serveren og bare ændre forespørgslen på insert2.php for at opdatere dem som denne

if($r=mysql_query("OPDATERING emp_info SET medarbejder_navn ='$navn' WHERE medarbejder_navn ='$id'",$con)) { $flag['kode']=1; }  

til sletning

if($r=mysql_query("SLET FRA emp_info WHERE medarbejdernavn ='$navn'",$con)) { $flag['kode']=1; ekko "hej"; } 

Også når du har lært dette, den næste opgave bør du lære threading og Asyntask for at gøre det mere forbedret, da arbejdet med hovedtråden ikke er godt i Android. bare indsæt denne indsæt-metode i Asyntask, som jeg har nævnt i læsemetoden, så brugergrænsefladen ikke bliver forstyrret, og internet-tinget bliver gjort i baggrunden.

BEMÆRK:

for en ny version af php tilføj denne linje efter uddrag

error_reporting(E_ALL ^ ​​E_DEPRECATED); 



  1. Nemmeste måde at aktivere PHP og MySQL på Mac OS 10.6 (Snow Leopard), 10.7 (Lion), 10.8 (Mountain Lion)?

  2. SQL Server rekursiv forespørgsel

  3. LEAD og LAG analytiske funktioner

  4. Disaster Recovery for Galera Cluster implementeret til en hybridsky