GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Banco de dados via Web Service

mysql
java
android
webservice
Tags: #<Tag:0x00007fb3cb4eb5e8> #<Tag:0x00007fb3cb4eb318> #<Tag:0x00007fb3cb4eaff8> #<Tag:0x00007fb3cb4eac38>

#1

Boa tarde pessoal, tudo bem? Sou novo em JAVA e gostaria de uma ajuda de vocês, vi esses dias atrás umas vídeo-aulas explicando como criar um WebService no Android utilizando o MySQL para gerenciar o BD.Porém não consegui implementar o método de buscar um usuário por ID no meu banco de dados. O problema é que não consigo buscar os meus usuarios pelo ID no banco. Tem como vocês me darem uma ajuda? Abaixo os métodos que utilizei:

MÉTODO:

import java.util.ArrayList;
import java.util.Iterator;

import com.example.kb.R.id;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.SearchView;
import android.widget.Toast;

public class BuscaOrdemServico extends Activity{

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

final EditText edOS = (EditText) findViewById(R.id.etOS);
Button btBusca = (Button) findViewById(R.id.btBusca);
Button btVolta = (Button) findViewById(R.id.btVolta);

btBusca.setOnClickListener(new OnClickListener() {
	
	@Override	
	public void onClick(View v) {
		
		UsuarioDAO dao = new UsuarioDAO();
		boolean usr = dao.buscarUsuarioporID(1, edOS.getText());
		
		if(usr){
			
			Toast.makeText(BuscaOrdemServico.this, "Ordem de Serviço Encontrada",Toast.LENGTH_LONG).show();
			finish();
		}else {
			Toast.makeText(BuscaOrdemServico.this, "Nenhuma Ordem de Serviço Encontrada", Toast.LENGTH_LONG).show();					
		}
	}

	
});

btVolta.setOnClickListener(new OnClickListener() {
	
	@Override
	public void onClick(View v) {
		Intent it = new Intent(BuscaOrdemServico.this, MainActivity.class);
		startActivity(it);
	}

});

}

Classe DAO:

public Usuario buscarUsuarioporID(int id){
Usuario usr = null;

SoapObject buscarUsuarios = new SoapObject(NAMESPACE, BUSCAR_POR_ID);
buscarUsuarios.addProperty(“id”, id);

	SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
	
	envelope.setOutputSoapObject(buscarUsuarios);
	
	envelope.implicitTypes = true;
	
	HttpTransportSE http = new HttpTransportSE(URL);
	
try {
	http.call("urn:" + BUSCAR_POR_ID, envelope);
		
	SoapObject resposta = (SoapObject) envelope.getResponse();
		
	usr = new Usuario();
			
	usr.setId(Integer.parseInt(resposta.getProperty("id").toString()));	
	usr.setNome(resposta.getProperty("nome").toString());
	usr.setIdade(Integer.parseInt(resposta.getProperty("idade").toString()));
	
	
		
		
} catch (Exception e) {
		e.printStackTrace();
		return null;
}
			
return usr;

}


#2

Eu não entendo muito bem a parte do Soap não, mas você já experimentou fazer assim:

boolean usr = dao.buscarUsuarioporID(1, edOS.getText().toString);

Como eu disse eu não entendo muito de Soap não, mas ali esta retornando um objeto usuário e você está comparando a um boolean. Nesse caso não deveria ser:

Usuario usr = dao.buscarUsuarioporID(1, edOS.getText());

  if(usr.getid > 0){
  	
  	Toast.makeText(BuscaOrdemServico.this, "Ordem de Serviço Encontrada",Toast.LENGTH_LONG).show();
  	finish();
  }else {
  	Toast.makeText(BuscaOrdemServico.this, "Nenhuma Ordem de Serviço Encontrada", Toast.LENGTH_LONG).show();					
  }

#3

Consegui resolver o problema. Alterei as seguintes linhas:

CLASSE UsuarioDAO:
public Usuario buscarUsuarioporID(String id){

CLASSE (metodo):

public void onClick(View v) {

			UsuarioDAO dao = new UsuarioDAO();
			
			String a = edOS.getText().toString();
			Usuario usr2 = dao.buscarUsuarioporID(a);
			
			if(usr2 != null){
				
				Toast.makeText(BuscaOrdemServico.this, "Ordem de Serviço Encontrada",Toast.LENGTH_LONG).show();
				
				finish();