Pessoal, boa tarde!
preciso de uma ajuda:
Eu estou desenvolvendo um webservice que possui a função de exibir os titulos de livros referente a um autor pesquisado.
A busca eh feita em um banco mysql.
Construi o bloco abaixo como teste e esta rodando normalmente, porem o retorno eh dado somente com o primeiro dado encontrado:
public TituloDoAutor getTituloDoAutor(String autor) {
Connection conn = (Connection) MessageContext.getCurrentMessageContext().getProperty(
DBSampleServiceLifeCycle.DB_CONNECTION);
if(conn !=null) {
String SQL = "SELECT TITULO FROM LIVRO WHERE AUTOR=?";
try {
PreparedStatement statement = conn.prepareStatement(SQL);
statement.setString(1, autor);
ResultSet result = statement.executeQuery();
if (result.next()) {
TituloDoAutor tituloDoAutor = new TituloDoAutor();
tituloDoAutor.setTitulo(result.getString("TITULO"));
return tituloDoAutor;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
alguem tem alguma dica de como fazer para retornar todos que forem encontrados?
tentei fazer um loop com while e lista mas nao deu certo.nao sei se estou completamente errado no codigo abaixo(lembrando que meu conhecimento em java e sql eh o menor possivel). Alguem conseguiria dar uma ajuda? Segue:
public TituloDoAutor[] getTituloDoAutor(String autor) {
Connection conn = (Connection) MessageContext.getCurrentMessageContext().getProperty(
DBSampleServiceLifeCycle.DB_CONNECTION);
if(conn !=null) {
String SQL = "SELECT TITULO FROM LIVRO WHERE AUTOR=?";
try {
PreparedStatement statement = conn.prepareStatement(SQL);
statement.setString(1, autor);
ResultSet result = statement.executeQuery();
ArrayList list = new ArrayList();
while (result.next()) {
TituloDoAutor tituloDoAutor = new TituloDoAutor();
tituloDoAutor.setTitulo(result.getString("TITULO"));
list.add(tituloDoAutor);
return (TituloDoAutor[])list.toArray(new TituloDoAutor[list.size()]);}
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
muito obrigado!