montei um web service utilizando o axis, utilizando o banco de dados mysql, incluir alterar e excluir estão funcionando normalmente, mas o problema é que preciso consultar uns dados e nao sei como pegar esses dados, observem o metodo que criei para consultar:
public List listausu() throws SQLException
{
String sql = “select * from usuario”;
PreparedStatement stmt = this.connection.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
List<usuarioDTO> list = new ArrayList<usuarioDTO>();
while (rs.next())
{
usuarioDTO usuDTO = new usuarioDTO();
usuDTO.setLogin(rs.getString("st_log_usu"));
usuDTO.setSenha(rs.getString("st_senha_usu"));
list.add(usuDTO);
}
rs.close();
stmt.close();
return list;
}
Como poderei montar esse método para que me retorne os dados dessa tabela?
Aparentemente o seu método está correto. O mesmo preenche um ResultSet com todos os dados da tabela, adiciona na lista e a retorna.
Se você quer pegar todos os dados, cria um objeto do tipo List, no seu Main que receba o retorno desse método e em seguida, itere sobre ele, simples! O seu método, pelo que vi, já está retornando todos os dados em uma lista!
Agora se pretende consultar dados específicos e a tabela no banco consultado, tiver uma chave única para identificação (ID); é só passar a mesma como parâmetro na consulta (possibilidade).
Não sei se foi bem isso que você perguntou, mas se foi, não tem muito segredo.
Flw, boa sorte!
I
inscria
Obrigado pela atenção cara,
bom então esse meu método está correto certo ? e se eu precisasse disponibilizar esse método em um webservice para ser consumido por outra tecnologia como .net , seria dessa mesma maneira ?
tô usando para isso tomcat, axis, java
desde ja agradeço.
P
Pedrosa
Em webservice vc não pode passar uma Lista, ele trabalha com tipos primitivos.
I
inscria
ok cara ,
então como seria um método para web service q retornace os dados de uma tabela ?
tô precisando muito dessa ajuda … veja ae se vc pode me dar uma forcinha …
desde já agradeço…
S
skalinichenko
O que o Pedrosa falou, está certo mesmo.
Não tem como passar uma List (apesar da tecnologia .NET, possuir na sua implementação de Coleções, a ICollection, mas seria muito arriscado. Pelo menos, nunca tentei ).
Algumas vezes, precisei passar informações de .NET pra Java, e vice-versa.
A melhor maneira que encontrei, foi gerar um documento XML, passar como se fosse um POST e carregar o mesmo do outro lado.
ok pessoal vou passar o cenário completo p v o que vcs acham .
vejam só, tenho um web service feito em java tomcat axis, os métodos de incluir alterar e excluir eu consigo invocar normalmento do .net, mas preciso de um método que retorne os dados do banco, como posso fazer isso nesse meu web service, sabendo - se que o web service em java será consumido pelo .net ?
desde já agradeço…
P
Pedrosa
Não é a melhor maneira, mas usei uma vez assim, o método de acesso a dados esta correto, para poder passar uma String usei uma biblioteca que transforma objeto em xml ou seja uma String.
E publicava esse ws com Xfire.
Mas fica esquesito uma String xml dentro de um ws que é um xml, portanto existem outro tipo de abordagem o ws restfull, o VRaptor tem uma solução bem legal, vale a pena dar uma olhada, onde vc gera uma pagina em JSON ou XML passando uma lista.
Cara, uma solução! Meio tosca eu acho, mas não deixa de ser uma solução! :lol:
Vi que você não gostou muito da idéia do XML :)
Como o Pedrosa falou e como todos nós sabemos, a conversa dos WebServices (ou na maioria das vezes, sempre praticada), com tipos primitivos.
Pegando o seu método e mudando o tipo de retorno:
E do outro lado (na consumação do WebService, em .NET), você recebe os dados e vai formatando com SubString.
Entendeu?
Um pouco trabalhoso devido aos SubStrings, mas dá certo!
Flw!
I
inscria
Vlw… pessoal, Agradeço muito mesmo … ajudaram bastante …
vou seguir a orientação de vcs … e colocar como string.
S
skalinichenko
inscria:
Vlw… pessoal, Agradeço muito mesmo … ajudaram bastante …
vou seguir a orientação de vcs … e colocar como string.
Lembrando que: “não passa nem perto das melhores práticas, fazer dessa forma”
Flw, boa sorte!
Cara depois de quebrar muito a kbeça e desenvolvendo WebServices com JDBC, eu fiz assim:
//Listar todos os objetos do banco de dados@WebMethod(operationName="listaTodosProdutos")publicList<Produto>listaTodosProdutos(){//TODO write your implementation code here://Consultar http://www.guj.com.br/posts/list/113128.javaArrayList<Produto>pd=newArrayList<Produto>();try{Class.forName("org.postgresql.Driver");con=DriverManager.getConnection(URL_BASEDADOS,USUARIO,SENHA);stmt=con.createStatement();sql=("SELECT *FROM PRODUTO");rs=stmt.executeQuery(sql);while(rs.next()){Produtoprod=newProduto();prod.setCodigo(rs.getInt("codigo"));prod.setDescricao(rs.getString("descricao"));prod.setMarca(rs.getString("Marca"));prod.setQuantidade(rs.getInt("quantidade"));prod.setValor(rs.getInt("valor"));pd.add(prod);}stmt.execute(sql);}catch(Exceptione){e.getMessage();}returnpd;}
Embora não seja a melhor forma de se implementar Web Services eu fiz desta maneira.
Outra coisa que algumas pessoas podem encontrar dificuldades é qnto á classe bean.
Tem que fazer os construtores assim:
packageorg.ws;importjava.io.Serializable;/** * @author AndrePush */publicclassProdutoimplementsSerializable{privatestaticfinallongserialVersionUID=1L;privateintcodigo;privateStringdescricao;privateStringmarca;privateintquantidade;privateintvalor;privateinttotal;publicProduto(){}publicProduto(intcodigo){this.codigo=codigo;}publicProduto(intcodigo,Stringdescricao,Stringmarca,intvalor,inttotal){this.codigo=codigo;this.descricao=descricao;this.marca=marca;this.valor=valor;this.total=total;}/** * @return the codigo */publicintgetCodigo(){returncodigo;}/** * @param codigo the codigo to set */publicvoidsetCodigo(intcodigo){this.codigo=codigo;}/** * @return the descricao */publicStringgetDescricao(){returndescricao;}/** * @param descricao the descricao to set */publicvoidsetDescricao(Stringdescricao){this.descricao=descricao;}/** * @return the marca */publicStringgetMarca(){returnmarca;}/** * @param marca the marca to set */publicvoidsetMarca(Stringmarca){this.marca=marca;}/** * @return the valor */publicintgetValor(){returnvalor;}/** * @param valor the valor to set */publicvoidsetValor(intvalor){this.valor=valor;}/** * @return the quantidade */publicintgetQuantidade(){returnquantidade;}/** * @param quantidade the quantidade to set */publicvoidsetQuantidade(intquantidade){this.quantidade=quantidade;}/** * @return the total */publicintgetTotal(){returntotal;}/** * @param total the total to set */publicvoidsetTotal(inttotal){this.total=total;}@OverridepublicStringtoString(){return"Banco de Dados[codigo= "+codigo+", descricao="+descricao+","+"marca="+marca+", valor="+valor+",total="+total+"]";}}