Aller au contenu

Récuperer des donnés dans une base de données


Recommended Posts

Bonjour, SVP comment peut on récupérer une donnée qui existe dans une variable EditText dans la classe MainActivity pour l'utiliser dans la classe Connect (classe de la connexion a la BD).

Classe MainActivity:

package com.example.firstdb;

import android.app.Activity;

import android.os.Bundle;

import android.text.Editable;

import android.view.Menu;

import android.widget.EditText;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

EditText editText1 = (EditText) findViewById(R.id.editText1);

EditText editText2 = (EditText) findViewById(R.id.editText2);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.activity_main, menu);

return true;

}

}

Classe Connect

package com.example.firstdb;

import java.sql.Statement;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

public class connect {

public static void main(String[] args) {

try {

Class.forName("org.postgresql.Driver");

String url = "jdbc:postgresql://localhost:5432/firstBD";

String user = "postgres";

String passwd = "000000";

int var ;

int var2 =1;

Connection conn = DriverManager.getConnection(url, user, passwd);

//Création d'un objet Statement

Statement state = (Statement) conn.createStatement();

//L'objet ResultSet contient le résul²tat de la requête SQL

ResultSet result = ((Statement) state).executeQuery("SELECT * FROM Personne");

//On récupère les MetaData

ResultSetMetaData resultMeta = result.getMetaData();

System.out.println("\n**********************************");

//On affiche le nom des colonnes

for(int i = 1; i <= resultMeta.getColumnCount(); i++)

System.out.print("\t" + resultMeta.getColumnName(i) + "\t *");

System.out.println("\n**********************************");

while(result.next()){

var = result.getInt("id");

if (edittex1 == var2)

System.out.println("c'est la méme variable !");

else

System.out.println("Oops, c'est pas la méme variable.");

}

result.close();

state.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

Lien vers le commentaire
Partager sur d’autres sites

  • 4 months later...

salut,

l'idéal serait que ce soit ta classe "MainActivity" qui instancie ta classe "connect".

Ainsi tu pourrais y passer les valeurs contenue dans les EditText via le constructeur ou un setter.

ex:

Classe MainActivity:
package com.example.firstdb;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.view.Menu;
import android.widget.EditText;
public class MainActivity extends Activity {
   private Connect mConnect;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

	 EditText editText1 = (EditText) findViewById(R.id.editText1);

	 EditText editText2 = (EditText) findViewById(R.id.editText2);

    mConnect = new Connect(editText1, editText2);
   }
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
   }
}
Classe Connect
package com.example.firstdb;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
public class Connect {
   public Connect(EditText et1, EditText et2) {
  try {
  Class.forName("org.postgresql.Driver");

  String url = "jdbc:postgresql://localhost:5432/firstBD";
  String user = "postgres";
  String passwd = "000000";
  int var ;
  int var2 =1;


  Connection conn = DriverManager.getConnection(url, user, passwd);

  //Création d'un objet Statement
  Statement state =  (Statement) conn.createStatement();
  //L'objet ResultSet contient le résul²tat de la requête SQL
  ResultSet result = ((Statement) state).executeQuery("SELECT * FROM Personne");
  //On récupère les MetaData
  ResultSetMetaData resultMeta = result.getMetaData();

  System.out.println("\n**********************************");
  //On affiche le nom des colonnes
  for(int i = 1; i <= resultMeta.getColumnCount(); i++)
  System.out.print("\t" + resultMeta.getColumnName(i) + "\t *");

  System.out.println("\n**********************************");

  while(result.next()){	 
  var = result.getInt("id");
  if (edittex1 == var2)
	    System.out.println("c'est la méme variable !");
  else
	    System.out.println("Oops, c'est pas la méme variable.");
  }


  result.close();
  state.close();

  } catch (Exception e) {
  e.printStackTrace();
  }  
  }
   }

maintenant tu peux utiliser tes EditText dans la classe connect, tu peux récupérer le text contenu par l'EditText en faisant editText1.getText().toString();

Mais l'idéal serait d'instancier Connect dans onCreate de MainActivity, et d'avoir une méthode dans connect qui va lancer un traitement. ce devrait être cette méthode qui recevrai les informations.

PS: Majuscule à la première lettre des noms de classe ;)

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...