Pequena duvida hibernate

comecei ontem com hibernate e to com uma pequana dúvida,
como to acostumado com jdbc e escrever os codigos sql,
nao sei como fazer com que o usuário set os valores dos atributos, como por exemplo em jdbc:

            PreparedStatement st = conexao.prepareStatement("INSERT INTO paciente (NOME, SEXO, DATA_NASC, CELULAR, TELEFONE, CPF, RG, NOME_DOENCA, INFORMACOES, RUA, BAIRRO, CIDADE, EMAIL) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
            st.setString(1, paciente.getNome());
            st.setString(2, paciente.getSexo());
            st.setString(3, paciente.getDataNasc());
            st.setString(4, paciente.getCelular());
            st.setString(5, paciente.getTelefone());
            st.setString(6, paciente.getCpf());
            st.setString(7, paciente.getRg());
            st.setString(8, paciente.getNomeDoenca());
            st.setString(9, paciente.getInformacoes());
            st.setString(10, paciente.getRua());
            st.setString(11, paciente.getBairro());
            st.setString(12, paciente.getCidade());
            st.setString(13, paciente.getEmail());
            st.execute();
            st.close();
            conexao.close();

como eu faria em hibernate ?

package ManipulacaoContato;

import dao.ContatoDao;
import beans.Contato;

public class AdicaoDeContato {

	public static void main(String[] args) {
		Contato contato = criaContato();	
		new ContatoDao().salva(contato);
	}
	
	private static Contato criaContato(){
		Contato contato = new Contato();
		contato.setNome("João");
		contato.setEndereco("Rua tal");
		contato.setDataNascimento("10/10/1990");
		contato.setEmail("joao@yahoo.com.br");
		return contato;
	}

}

queria que o usuário setasse esses atributos ao invés de mim!
Sendo que o usuário tem q setar isso em um formulário html através de um servlet.

obrigado.

Cara, em sql “normal” como seu usuarios set o valor do paciente.getNome()); ???

E a mesma coisa a diferenca e que vc vai passar a classe paciente setado para o metodo de insert no hibernate

Artur, também sou iniciante. Não sei se entendi sua dúvida. Vc quer saber como pegar os dados do form ou ainda não se entendeu com o hibernate? Veja que o hibernate é apenas para persistência (gravação, consulta, exclusão, alteração) dos dados. Se for em relação à obter os dados do form, tem um exemplo bem simples:

Faça do action, seu servlet. Este servlet usa um DAO que pode ter sido escrito para usar hibernate ou JDBC normal. A aquisição dos dados é feita através do:
request.getParameter(“nomeDoCampo”)

cadastro_contato.jsp

<form name="cadastroContato" method="post" action="CadastraContato">
 //faça os inputs
</form>

implementação da servlet

package br.com.sistema.servlets;

import java.sql.Date;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CadastraContato extends HttpServlet{
	
	public void service(HttpServletRequest request, HttpServletResponse response){
                //instancia novo contato
		Contato contato = new Contato();
                //atribui os valores. Os inputs tem esses nomes
		contato.setNome(request.getParameter("nome"));
		contato.setEndereco(request.getParameter("endereco"));
		contato.setTelefone(request.getParameter("telefone"));

		//utiliza um dao implementado, seja em jdbc ou hibernate
		ContatoDAO contatoDAO = new ContatoDAO();
		contatoDAO.salvar(contato);
		
	}
}

Query q = session.createQuery(“seu sql where id = :id”);
q.setParameter(“id”,1);

vamos la, vou colocar partes de um code aqui. estou usando jsf, mas veja como ficou o code hibernate.

[code]public class ControllerUser {
private Usuarios usuario;

private DataModel model;

public Usuarios getUserEditorDelete(){
Usuarios us = (Usuarios) model.getRowData();
return us;
}
public String editar(){
Usuarios us = getUserEditorDelete();
setUsuario(us);
return “editar”;
}[/code]

public class UsuarioDAO extends DAO { public void atualizar(Usuarios us){ try{ getSession().beginTransaction(); getSession().merge(us); getSession().beginTransaction().commit(); getSession().flush(); }catch (HibernateException e) { e.printStackTrace(); rollback(); } }
a pagina editar.jsf

[code]Alterar Usuário

		<table>
		<tr><td>
		<label jsfc="h:outputLabel" for="nome">Nome:</label></td>
		<td>
		<input jsfc="h:inputText" size="30" type="text" id="nome" class="field"
		required="true" requiredMessage="Campo nome obrigatório" value="#{controllerUser.usuario.nome}"/>
		</td></tr>
		<tr><td>
		<label jsfc="h:outputLabel" for="sobrenome">Sobrenome:</label></td>
		<td>
		<input jsfc="h:inputText" size="50" type="text" id="sobrenome" class="field"
		required="true" requiredMessage="Campo sobrenome obrigatório" value="#{controllerUser.usuario.sobrenome}"/>
		</td>
		</tr>
		<tr><td>
		<label jsfc="h:outputLabel" for="login">Login:</label></td>
		<td>
		<input jsfc="h:inputText" size="25" type="text" id="login" class="field"
		required="true" requiredMessage="Campo login obrigatório"  value="#{controllerUser.usuario.login}"/>
		</td>
		</tr>
		<tr><td>
		<span jsfc="h:messages" class="msg" ></span></td></tr>	
		<tr><td>
		<label jsfc="h:outputLabel" for="senha">Senha:</label>
		</td>
		<td>			
		</tr>			
		
		<tr>
		<td><input jsfc="h:commandButton" type="submit" value="Alterar"
action="#{controllerUser.update}" class="botao" /></td>[/code]

Muito Obrigado a todos! Resolvi o problema (era tão fácil!)
era só eu me lembrar de quando eu fazia apps desktop com o
swing aí desenrolei!

obg!