Hibernate

10 respostas
lorena.dourado

Olá amigos!

Estou dando um estudada no Hibernate, daí estou tentando montar um programinha com ele...
Estou tentando fazer um select em uma tabela de usuários, e listá-los em meu form jsp, porém ele está dando o seguinte erro:
javax.servlet.ServletException: No getter method for property UsNome of bean usuario
Se alguém puder dar alguma sugestão de como posso contorná-lo, desde já agradeço.
Abaixo o código:

listar.jsp
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %>

<html:html locale="true">
<head>
<title><bean:message key="welcome.title"/></title>
<html:base/>
</head>
<body bgcolor="white">
<h3><bean:message key="listar.heading"/></h3>
<p><bean:message key="listar.inicio"/>

<html:form action="/paginaListarRegistros">
<c:forEach items="${usuarioBean}" var="usuario">
	<c:out value="${usuario.UsCod}" />
	<c:out value="${usuario.UsNome}" />
	<c:out value="${usuario.UsEmail}" />

</c:forEach>
</html:form>
<!--
<logic:iterate id="usuario" name="usuarioBean">
		<bean:write property="UsNome" name="usuario"/>
	</logic:iterate>

	
  -->
</body>
</html:html>
TesteAction
package action;


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

import org.apache.commons.beanutils.BeanUtils;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import bean.Usuario;

import dao.UsuarioDAO;
import form.TesteForm;

public class TesteAction extends Action{

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response){
	
		String retorno = "";
	
	try{
		
		TesteForm testeForm = new TesteForm();
		Usuario usuario = new Usuario();
		UsuarioDAO dao = new UsuarioDAO();
		
		if(mapping.getPath().equals("/incluirRegistro")){
			testeForm = (TesteForm)form;
			BeanUtils.copyProperties(usuario, testeForm);
			Usuario usuario_form = new Usuario(usuario.getUsCod(),usuario.getUsSenha(),usuario.getUsNome(),usuario.getUsEmail());
			dao.UsInserir(usuario_form);
			System.out.println("Registro inserido com sucesso!!!");	
			retorno = "sucesso";
			
		}else if(mapping.getPath().equals("/paginaalterarRegistro")){
			
			request.setAttribute("codigosUsuarios", dao.ListarTodosUs());		
			
		}else if(mapping.getPath().equals("/paginaListarRegistros")){
			request.setAttribute("usuarioBean", dao.ListarTodosUs());
			retorno = "sucesso";
			
		}else if(mapping.getPath().equals("/alterarRegistro")){
			
			testeForm = (TesteForm)form;
			BeanUtils.copyProperties(usuario, testeForm);
			Usuario usuario_form = new Usuario(usuario.getUsCod(),usuario.getUsSenha(),usuario.getUsNome(),usuario.getUsEmail());
			dao.UsInserir(usuario_form);
			System.out.println("Registro inserido com sucesso!!!");	
			retorno = "sucesso";		
			
			
		}else if(mapping.getPath().equals("/excluirRegistro")){
			
		}
	}catch(Exception e){
		System.out.println("Erro: " + e);
	}
	
		
		return mapping.findForward(retorno);
	}
	
	
}
UsuarioDAO
public class UsuarioDAO {
	

	private SessionFactory factory;

	public UsuarioDAO() throws Exception {
	
	factory = new Configuration().addClass(Usuario.class)
				.buildSessionFactory();

	
	}


	public LinkedList ListarTodosUs() throws Exception {
	
		LinkedList list = new LinkedList();
	try{
		
		TesteForm testeForm = new TesteForm();
		Session session = factory.openSession();
		Transaction tx = session.beginTransaction();
		String queryListar = "from bean.Usuario";
		Query query = session.createQuery(queryListar);
		for (java.util.Iterator it = query.iterate(); it.hasNext();){
            Usuario usuario = (Usuario) it.next();
			usuario.getUsCod();
			usuario.getUsNome();
			usuario.getUsSenha();
			usuario.getUsEmail();

            list.add(usuario);
            

        }
        tx.commit();
        session.close();
	
	}catch(Exception e){
		System.out.println("Erro Dao: " + e);
	}
		return list;
		
	}
	
}
Usuario.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
	<class name="bean.Usuario" table="tb_usuario">
		<id name="UsCod" column="USCOD" type="string">
			<generator class="assigned" />
		</id>
		<property name="UsSenha" column="USSENHA" type="string" />
		<property name="UsNome" column="USNOME" type="string" />
		<property name="UsEmail" column="USEMAIL" type="string" />
	</class>
</hibernate-mapping>

Abraços a todos,

:wink:

10 Respostas

J

Como está o codigo do seu Bean Usuario …

lorena.dourado

Olá,

Meu bean Usuario está abaixo:

package bean;
public class Usuario {
	private String usCod;
	private String usSenha;
	private String usNome;
	private String usEmail;
	
	public Usuario(){
		
	}		 	
	
	public Usuario(String usCod, String usSenha, String usNome, String usEmail) {
		
		this.setUsCod(usCod);
		this.setUsSenha(usSenha);
		this.setUsNome(usNome);
		this.setUsEmail(usEmail);
	}

	public String getUsCod() {
		return usCod;
	}

	public void setUsCod(String usCod) {
		this.usCod = usCod;
	}

	public String getUsEmail() {
		return usEmail;
	}

	public void setUsEmail(String usEmail) {
		this.usEmail = usEmail;
	}

	public String getUsNome() {
		return usNome;
	}

	public void setUsNome(String usNome) {
		this.usNome = usNome;
	}

	public String getUsSenha() {
		return usSenha;
	}

	public void setUsSenha(String usSenha) {
		this.usSenha = usSenha;
	}
	
	
}

Se puder me dar uma luz…agradeço…

Abração,

:wink:

lorena.dourado

Olá amigos,

Desculpe se estou sendo pertinente, mas será que poderia contar com a ajuda de vocês?! :cry:

Abração,

:wink:

E

se você puder escrever seu e-mail, posso te mandar a apostila do hibernate

E

ou se puder colocar o hibernate-cfg para eu analisar…

S
#     <c:out value="${usuario.UsCod}" />  
#     <c:out value="${usuario.UsNome}" />  
#     <c:out value="${usuario.UsEmail}" />

olha a forma como você está acessando sua entida.

tente isso:

<c:out value="${usuario.usCod}" />  
#     <c:out value="${usuario.usNome}" />  
#     <c:out value="${usuario.usEmail}" />

pois vc acessa a prop de seu bean, ok ??

qq coisa é só postar aqui… :stuck_out_tongue:

lorena.dourado
soudaniel_01:
#     <c:out value="${usuario.UsCod}" />  
#     <c:out value="${usuario.UsNome}" />  
#     <c:out value="${usuario.UsEmail}" />

olha a forma como você está acessando sua entida.

tente isso:
<c:out value="${usuario.usCod}" />  
#     <c:out value="${usuario.usNome}" />  
#     <c:out value="${usuario.usEmail}" />

pois vc acessa a prop de seu bean, ok ??

qq coisa é só postar aqui... :P

soudaniel_01: Ué? Pra acessar da mesma forma que eu estava acessando?
edu_naka Meu e-mail é: [email removido]. Abaixo o hibernate.cfg:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC 
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
	
	<hibernate-configuration>
	    <!-- a SessionFactory instance listed as /jndi/name -->
	    <session-factory name="java:comp/env/hibernate/SessionFactory">
	
	        <!-- properties -->
	        <property name="connection.driver_class">
	            com.mysql.jdbc.Driver
	        </property>
		    <property name="connection.url">
	            jdbc:mysql://localhost:3306/blank
	        </property>
	        <property name="dialect">
	            org.hibernate.dialect.MySQLDialecta
	        </property>
	        <property name="show_sql">true</property>
	        <property name="connection.username">root</property>
	        <property name="connection.password">teste</property>
		    <property name="connection.pool_size">10</property>
			
	        <!-- mapping files -->
	        <mapping resource="/bean/Usuario.hbm.xml"/>
	       
	
	    </session-factory>
	</hibernate-configuration>

Abraço,

:wink:

J

olhe eu tambem estou comecando agora eu faço assim
uso o eclipse e crio um projeto web na pasta src eu crio meus xml’s
bem no hibernate.cfg.xml
eu faco referecia aos outros assim xml´s assim:

no seu caso seria assim

Entao relambrando todos xml dentro do diretorio src
depois no arquivo de configuracao de cada classe assim:

no seu caso deve ser algo parecido assim:

outra dica eh nome da tabela e dos campos e atributos da classe tudo igual…
de uma olhada nisso…
bem me fale tambem se vc conseguiu entender o q eu disse aqui ok???

lorena.dourado
soudaniel_01:
#     <c:out value="${usuario.UsCod}" />  
#     <c:out value="${usuario.UsNome}" />  
#     <c:out value="${usuario.UsEmail}" />

olha a forma como você está acessando sua entida.

tente isso:
<c:out value="${usuario.usCod}" />  
#     <c:out value="${usuario.usNome}" />  
#     <c:out value="${usuario.usEmail}" />

O problema era justamente esse!

Muito obrigada!

Grande abraço,

:wink:

pois vc acessa a prop de seu bean, ok ??

qq coisa é só postar aqui... :P

rodrigo_corinthians

No seu cfg está assim MySQLDialecta mas o jeito correto seria MySQLDialect.

No getter method for property UsNome of bean usuario…
Não encontrou o method get pra propriedade UsNome o erro está bem claro.

No seu hbm está configurando o nome da propriedade como UsNome mas na classe Usuario vc colocou usNome lembre-se que em Java tudo(ou quase) é case-sensitive.

Criado 30 de agosto de 2007
Ultima resposta 3 de set. de 2007
Respostas 10
Participantes 5