Galera, preciso trazer uma informação do banco para a página JSP.
Estou produzindo um site que terá algumas notícias, e na inicial quero mostrar apenas uma… Quero que ele busque a última cadastrada no banco. Já fiz a conexão, só preciso colocar essa informação no JSP.
Dizem que é bom fazer com lista, mas para uma única mensagem não é necessário, correto? Se eu trouxer 3 notícias, devo usar lista? Como faço nessas duas ocasiões?
Como está seu código de conexão com o banco de dados? Você está usando Servlets puro ou algum framework?
Se você precisa trazer só o último registro, não há necessidade de utilizar uma lista. Poste seu código, assim fica melhor pra galera te ajudar.
L
leorbarbosa
Alan,
se for a última, use:
SELECT noticia FROM TABELA where id = (SELECT MAX(ID) from TABELA)
Simples não ?
A
alanmartins
Fiz em Servlet puro, mas segui alguns exemplos da apostila Fj21 Caelum, cheguei a usar hibernate também. Mas nesse está em Servlet puro.
Não tenho o código aqui, estou desenvolvendo isso em casa, mas escrevi agora pois é o horário que a galera pode responder…
Que na apostila da caelum o select é feito trazendo a lista, posso olhar na apostila e postar o código que usei como referência.
Valeu!
T
thiagotn
Você pode usar a query que o @leorbarbosa comentou, no seu DAO:
publicNoticiaconsultaUltimaNoticia(){
try{
PreparedStatementstmt=this.connection.prepareStatement("SELECT noticia FROM TABELA where id = (SELECT MAX(ID) from TABELA)");ResultSetrs=stmt.executeQuery();if(rs.next()){
Noticianoticia=newNoticia();noticia.setId(rs.getInt("id"));noticia.setNome(rs.getString("nome"));noticia.setAssunto(rs.getString("assunto"));rs.close();stmt.close();returnnoticia;}
returnnull;}catch(Exceptione){
thrownewRuntimeException(e);}
}
Escrevi mas a mensagem do usuário acima chegou antes, como não tinha visto desconsiderar essa então, já respondeu minhas dúvidas que escrevi aqui!
A conexão fiz basicamente assim:
1 public Connection getConnection() {
2 System.out.println("Conectando ao banco");
3 try {
4 return DriverManager.getConnection("jdbc:mysql://localhost/alanmartins", "root", "");
5 } catch(SQLException e) {
6 throw new RuntimeException(e);
7 }
8 }
No meu DAO eu crio o método que insere, quero o método que dá o select ( Como seria esse select? Igual informado no post acima? SELECT noticia FROM TABELA where id = (SELECT MAX(ID) from TABELA) e então armanezaria isso em uma variável?
noticias = ("SELECT noticia FROM TABELA where id = (SELECT MAX(ID) from TABELA)";
Mais ou menos isso ai?
Há alguma maneira melhor de se fazer tudo isso, algum padrão?
A
alanmartins
Muito obrigado a todos! Era isso mesmo que eu precisava.