Inserir registros do Mysql no Combobox

10 respostas
Cris_gavioli

Olá…Estou fazendo uma webapplication em jsp.

Alguem saberia me dizer como posso inserir registros do Mysql no Combobox???

Tenho as horas e minutos que serão armazenados no banco de dados; e o usuário selecionará os mesmos…

Hora::

Grata

10 Respostas

C

De uma olhada deste post

http://www.portaljava.com/home/modules.php?name=Forums&file=viewtopic&t=37948

Cris_gavioli

Estou tentando aqui…Ainda não deu certo…

Não tinha achado nenhum tópico falando sobre esse assunto, Obrigada pela sugestão.

O

Cris_gavioli:
Estou tentando aqui…Ainda não deu certo…

Não tinha achado nenhum tópico falando sobre esse assunto, Obrigada pela sugestão.

Vc pode jogar seus registros dentro de uma colecao de objetos e jogar essa colecao dentro da combo… eu fiz assim…
Codigo da classe DAO que cria uma Lista

public List<Pessoa> getLista() throws SQLException {
		PreparedStatement smtm = (PreparedStatement) this.conexao.prepareStatement("select * from pessoa");
		ResultSet rs = smtm.executeQuery();

		// Select com cursor
		List<Pessoa> contatos = new ArrayList<Pessoa>();
		while (rs.next()) {
			// Criando objetos
			Pessoa pessoa = new Pessoa();
			pessoa.setId(rs.getInt("idpessoa"));
			pessoa.setNome(rs.getString("nome"));
			pessoa.setCpf(rs.getString("cpf"));
			// adcionando pessoa na lista
			contatos.add(pessoa);
		}
		rs.close();
		smtm.close();
		return contatos;

	}

Codigo JSP da combo que pega os objetos retornados…

<select name="pessoa" size="1">
	<% 
	   List<Pessoa> lista = d.getLista();
	   for (Pessoa pessoa : lista){ %>
	   <option> <%= pessoa.getId() + " " + pessoa.getNome() %> </option>
	<% } %>
</select><br>

No meu caso eu tinha ID e Nome…Espero ter ajudado…

C

Utilizar coleções da API Java, ao invés de arrays.

Pega dados do Banco de dados:

Com o ResultSet (variável chama-se “rs”) faça:

//declara a coleção
List colecao = new ArrayList();

while(rs.next()){
  //coloca dados na coleção
  colecao.add(rs.getString(1));
}

para mostrar no Servlet

out.println("<td align='right'>Sigla:</td>");
out.println("<td align='left'> <select name='sigla' class='input'>");
Iterator it = colecao.iterator();
while(it.hasNext()){
    String dados = (String) it.next();
     out.println("<option>" + dados + "</option>");
}
out.println("</td>");
Cris_gavioli

Pessoal, dêem uma olhada no jeito que estou fazendo:

try {
        Statement stmt = con.createStatement();
        rs = stmt.executeQuery("select * from usuario");

        if (rs.next()) {

          login = rs.getString("login");
          i=i++;
        }

Na tela de exibição:

<p align="left">   Usuário:
		<select size="1" name="D1" style="width: 76; height: 43">
               <option value=i><jsp:getProperty name="acesso" property="login" /><br></option>
               </select></p>

Mas está ocorrendo o seguinte erro:

An error occured in the bean. Error Message is: null

Grata…

C
Cris_gavioli:
Pessoal, dêem uma olhada no jeito que estou fazendo:
try {
        Statement stmt = con.createStatement();
        rs = stmt.executeQuery("select * from usuario");

        if (rs.next()) {

          login = rs.getString("login");
          i=i++;
        }
Na tela de exibição:
<p align="left">   Usuário:
		<select size="1" name="D1" style="width: 76; height: 43">
               <option value=i><jsp:getProperty name="acesso" property="login" /><br></option>
               </select></p>

Mas está ocorrendo o seguinte erro:

An error occured in the bean. Error Message is: null

Grata...

Qual o tipo da variável login?
Caso for String ela somente vai armazenar o último valor da consulta.
Você deve criar uma classe persistente.
Ex:

public class Usuario{

private String login;

//adicione os setters e getters
}

Depois você cria uma coleção.

List listaDeLogins = new ArrayList();
[code]

Agora você instancia a classe Usuario dentro do while

[code]
while(rs.next()){
    Usuario usuario = new Usuario();
    usuario.setLogin(rs.getString("login");

    listaDeLogins.add(usuario)
}

Ahh, você não precisa disso: i=i++;
Ele vai parar de iterar quando nao houver mais registro: rs.next(), enquanto tiver ele itera, ok?

Cris_gavioli

Consegui… :slight_smile:

Obrigada pessoal…

H

Vc pode me mostrar como ficou seu código, estou criando uma aplicação WEB, preciso de um select da tabela pessoa para UF, onde posso pegar os estados listados nesta tabela UF e jogar na coluna Uf,da tabela pessoa. Pelos exemplos acima não entedi o trecho

<%

List lista = d.getLista();

for (Uf uf : lista){ %>

 <%= uf.getIduf() + " " + uf.getEstado() %> 

<% }

%>

= d.getLista(); . O d, que significa?

H

Cris_gavioli:
Consegui… :slight_smile:

Obrigada pessoal…

No meu projeto WEB, onde que listar da tabela PESSOA, dados na TABELA UF, coluna ESTADO, o meu daoPessoa está assim: isso está correto e gostaria de um exemppplo para o SELECT em JSP. Agradeço pro qualquer informação.

public List getLista() throws Exception {

PreparedStatement ps = null;

Connection conn = null;

ResultSet rs = null;
try {
        conn = this.conn;
        ps = conn.prepareStatement("select * from uf");
        rs = ps.executeQuery( );
         List<Uf> estado = new ArrayList<Uf>();  
         while (rs.next()) {  
         Uf uf = new Uf();  
         uf.setIduf(rs.getInt("iduf"));  
         uf.setEstado(rs.getString("estado"));  
         
         // adcionando estado na lista
         estado.add(uf);  
     }  
     rs.close();  
     
     return estado;


    } catch (SQLException sqle) {
        throw new Exception(sqle);
    } finally {
        ConexaoBancoDeDados.CloseConnection(conn, ps, rs);
    }

}

H

HenrikoAS:
Cris_gavioli:
Consegui… :slight_smile:
Preciso de alguma ajuda aqui, será quem alguém pode me ajudar. Agradeço.

Obrigada pessoal…

No meu projeto WEB, onde que listar da tabela PESSOA, dados na TABELA UF, coluna ESTADO, o meu daoPessoa está assim: isso está correto e gostaria de um exemppplo para o SELECT em JSP. Agradeço pro qualquer informação.

public List getLista() throws Exception {

PreparedStatement ps = null;

Connection conn = null;

ResultSet rs = null;
try {
        conn = this.conn;
        ps = conn.prepareStatement("select * from uf");
        rs = ps.executeQuery( );
         List<Uf> estado = new ArrayList<Uf>();  
         while (rs.next()) {  
         Uf uf = new Uf();  
         uf.setIduf(rs.getInt("iduf"));  
         uf.setEstado(rs.getString("estado"));  
         
         // adcionando estado na lista
         estado.add(uf);  
     }  
     rs.close();  
     
     return estado;


    } catch (SQLException sqle) {
        throw new Exception(sqle);
    } finally {
        ConexaoBancoDeDados.CloseConnection(conn, ps, rs);
    }

}

Criado 28 de março de 2007
Ultima resposta 18 de jan. de 2011
Respostas 10
Participantes 4