Preencher campos após busca no banco de dados [RESOLVIDO]

9 respostas
A

Olá pessoal, estou com uma dúvida, gostaria de saber se alguém pode me ajudar.
A dúvida e:
Como preencher os campos de um formulario com informações do banco usando javabeans?

9 Respostas

peczenyj

vc conecta no banco (jdbc, hibernate)
vc recupera as informações (sql, hql, criteria)
vc passa estas informações para a view (usando sessão, por exemplo)
na view, basta preencher os valores com o que esta na sessão, por exemplo, ai é JSP.

A

Poderia me mostrar um exemplo?

phmjunior

voê pode fazer um select com os campos q quer mostrar na sua página com formulários ai cria strings para cada campo. ex:

Cria um RecordSet com esse select:

<%
String parametro = request.getParameter("id"); // aqui recebe o valor passado e manda para o select 

Connection = conn;
PreparedStatement = pstm;
conn = SuaConexao.getConnection();
pstm = conn.prepareStatement("select nome, endereco, telefone, email from tabela where id = "+parametro+");
//coloquei o campo id mas você pode por o campo q quer usar como filtro pode ser o nome.
ResultSet rs = pstm.executeQuery();
boolean rs_isEmpty = !rs.next();
// ai 

if(!rs_isEmpty){
String nome = rs.getString("nome");
        if(nome == null){nome = "";}
String endereco = rs.getString("endereco");
        if(endereco == null){endereco = "";}
String telefone = rs.getString("telefone");
        if(telefone == null){telefone = "";}
String email = rs.getString("email");
        if(email == null){email = "";}
}
%>
//seu formulário html ficaria assim:

<form bla blá vc sabe...>
Nome: <Input type="text" name="nome" value="<%= nome%> /><br/>
Endereço: <Input type="text" name="endereco" value="<%= endereco%> /><br/>
Telefone: <Input type="text" name="telefone" value="<%= telefone%> /><br/>
Email: <Input type="text" name="email" value="<%= email%> /><br/>
</form>

<%
rs.close();
pstm.close();
conn.close();
%>

Acho q é isso q vc quer.

abraço

allyssonluan

Hey

Seria algo tipo Auto-complete?

A

Queria que aparecesse as informações nos campos quando
o usuario desse um clicke no botão editar

A

Na classe DAO tenho este metodo

public ContatoCad obterPorId(ContatoCad entidade) {
		Connection conexao = null;
		PreparedStatement statement = null;
		ResultSet result = null;
		try {
						
			conexao = obterConexao();
			statement = conexao.prepareStatement("SELECT id, NOME, EMAIL, TELEFONE FROM  contato WHERE ID = ?");
			statement.setInt(1, entidade.getId());
			
			result= statement.executeQuery();
			
			if (result.next()) {
				ContatoCad retorno = new ContatoCad();
				retorno.setId(result.getInt("id"));
				retorno.setNome(result.getString("NOME"));
				retorno.setEmail(result.getString("EMAIL"));
				retorno.setTelefone(result.getString("TELEFONE"));
				return retorno;
			} else {
				return null;
			}

e este e o formulario

<html>

	<body>
		<jsp:useBean id="contato" class="Contato"></jsp:useBean>
		<jsp:setProperty property="*" name="contato"/>
		<% contato.executar(request, response); %>
		
		<form action="Form.jsp">
			<table>
			<caption>Cadastrar Contatos</caption>
				<tr>
					<td>Id:</td>
					<td><input type="text" name="id" ></td>
				</tr>
				<tr>
					<td>Nome:</td>
					<td><input type="text" name="nome" ></td>
				</tr>
				<tr>
					<td>Email:</td>
					<td><input type="text" name="email"></td>
				</tr>
				<tr>
					<td>Telefone:</td>
					<td><input type="text" name="telefone"></td>
				</tr>
				<tr>
					<td>Data Nascimento</td>
					<td><input type="text"></td>
				</tr>
				<tr>
					<td><input type="submit" value="Cancelar"><input type="submit" name="acao" value="Cadastrar"></td>
				</tr>		
			</table>
		</form>	
	
	</body>

</html>

Na minha classe Contato tenho este método que inclui ação nos botões

public void executar(HttpServletRequest request, HttpServletResponse response) throws Exception {
		
		if (getAcao() != null && !getAcao().equals("")) {
			
			if (getAcao().equals("Cadastrar")) {
				
				ContatoCad contato = new ContatoCad();
				contato.setEmail(getEmail());
				contato.setNome(getNome());
				contato.setTelefone(getTelefone());
				
				new ContatoDAO().incluir(contato);
				
				response.sendRedirect("List.jsp");
				
			}

e quero criar um botão editar, que quando clikado preencha os campos do formulario com as informações do banco
mas n sei como fazer isso.

allyssonluan

Hey…

Então, você já está começando certo, usando as tags <useBean> e etc…

Você terá que fazer o seguinte:
[list]Crie um outro método na classe contato que tem o método executar e colocar editar.[/list]
[list]Crie uma outra página JSP para que carregue as informações após a execução do método editar.[/list]

É basicamente isto, não sei se ainda o que você quer.

A

Obrigada, vou tentar fazer

allyssonluan

Hey…

OK! Qualquer coisa tentar colocar no post os seus arquivos, que tentandos dar um help mais específico!

Criado 10 de outubro de 2009
Ultima resposta 13 de out. de 2009
Respostas 9
Participantes 4