Problemas com Hbernate + MySql

Galera boa noite, estou inciando meus estudos em Java e Hibernate e já começo me deparando com o seguinte problema:

org.hibernate.HibernateException: 'hibernate.dialect' must be set when no Connection available
	org.hibernate.dialect.resolver.DialectFactory.buildDialect(DialectFactory.java:106)
	org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:152)
	org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2863)
	org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2859)
	org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1870)
	dao.DAOuser.<init>(DAOuser.java:13)
	action.Validar.doPost(Validar.java:47)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

Minha classe Usuario é a seguinte:

public class Usuario { private String user; private String password; private int level; public int getLevel() { return level; } ... gets e sets

O mapeamento no Usuario.hbm.xml é:

[code]

<?xml version="1.0"?> [/code]

E as configurações de conexão do Hibernate é:

[code]<?xml version="1.0" encoding="UTF-8"?>

org.gjt.mm.mysql.Driver 123 jdbc:mysql://localhost/locadora root org.hibernate.dialect.MySQL5Dialect [/code]

Alguém poderia me mostrar onde esta o erro (Depois de tanto tempo lendo da uma turvada na vista pra achar erros!), valendo lembrar que o driver do mysql esta no seu devido local.

Agradeço desde já!

Como está sua classe que inicia a configuração do hibernate?

Como eu disse eu sou iniciante e as vezes me enrrolo, mas a classe que incia a configuração do Hibernate seria a hora que eu abro as sessões pra realizar uma consulta? Caso não seja pode ser esse o problema pios as únicas classes que envolvem Hibernate que estão no meu projeto são essas que já postei!

Mas de qualquer maneira vou por aqui como estou abrindo a sessão nas DAO.

[code]import org.hibernate.*;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.Restrictions;

import model.*;

public class DAOuser {
private SessionFactory factory;

public DAOuser(){
	factory = new Configuration().addClass(Usuario.class).buildSessionFactory();
}

public void inserirUser(Usuario user) throws Exception {
	Session sessao = factory.openSession();
	sessao.save(user);
	sessao.flush();
	sessao.close();
}


[/code]

É essa classe mesmo.

Tente remover o addClass(Usuario.class) e adicionar esta configuração no xml. Me parece que você deve usar ou configuração programática, ou por xml.

Uma dica: o método que você colocou no construtor do DAO deveria estar numa classe separada. Você precisará delas em diversos lugares, não apenas neste DAO (vc não precisa efetuar o setup do hibernate para cada DAO). Procure por HibernateUtil, que é uma das maneiras de isolar esta configuração.

[quote=wagnerfrancisco]É essa classe mesmo.

Tente remover o addClass(Usuario.class) e adicionar esta configuração no xml. Me parece que você deve usar ou configuração programática, ou por xml.

Uma dica: o método que você colocou no construtor do DAO deveria estar numa classe separada. Você precisará delas em diversos lugares, não apenas neste DAO (vc não precisa efetuar o setup do hibernate para cada DAO). Procure por HibernateUtil, que é uma das maneiras de isolar esta configuração.[/quote]

Seguinte, fiz como você disse e pesquisei e criei a HibernateUtil e fiz uma DAO generica passando o objeto e na Util ele faz o procedimento (ainda não testei), porém antes de continuar eu criei uma classe geradora de tabelas:

[code]public class GerarTabela {

public static void main (String [] args){
	
	AnnotationConfiguration configuration = new AnnotationConfiguration();
	configuration.addAnnotatedClass(Usuario.class);
	SchemaExport export = new SchemaExport(configuration);
	export.create(true,false);
}

}[/code]

e a classe Usuario ficou assim:

@Entity
public class Usuario {
	@Id
	@GeneratedValue
	private int level;
	@Column
	private String user;
	@Column (length = 16)
	private String password;
...

Criei também a hibernate.properties que esta assim:

hibernate.dialect = org.hibernate.dialect.MySQL5Dialect hibernate.connection.driver_class = com.mysql.jdbc.Driver hibernate.connection.password = 22971244 hibernate.connection.url = jdbc:mysql://localhost/locadora hibernate.connection.username = root hbernate.show_sql = true hibernate.hbm2ddl.auto = update hibernate.connection.charset = UTF-8

Porém quando mando executar a classe GerarTabela da o seguinte retorno:

[quote]11:41:22,300 INFO Version:37 ? Hibernate Commons Annotations 3.2.0.Final
11:41:22,311 INFO Environment:603 ? Hibernate 3.6.5.Final
11:41:22,316 INFO Environment:621 ? loaded properties from resource hibernate.properties: {hibernate.connection.driver_class=com.mysql.jdbc.Driver, hibernate.dialect=org.hibernate.dialect.MySQL5Dialect, hibernate.connection.username=root, hbernate.show_sql=true, hibernate.hbm2ddl.auto=update, hibernate.connection.url=jdbc:mysql://localhost/locadora, hibernate.bytecode.use_reflection_optimizer=false, hibernate.connection.password=****, hibernate.connection.charset=UTF-8}
11:41:22,319 INFO Environment:814 ? Bytecode provider name : javassist
11:41:22,322 INFO Environment:695 ? using JDK 1.4 java.sql.Timestamp handling
11:41:22,407 INFO Dialect:135 ? Using dialect: org.hibernate.dialect.MySQL5Dialect
11:41:22,470 INFO AnnotationBinder:532 ? Binding entity from annotated class: model.Usuario
11:41:22,508 INFO EntityBinder:530 ? Bind entity model.Usuario on table Usuario
11:41:22,557 INFO Configuration:1676 ? Hibernate Validator not found: ignoring
11:41:22,566 INFO SchemaExport:234 ? Running hbm2ddl schema export
drop table if exists Usuario
create table Usuario (level integer not null auto_increment, password varchar(16), user varchar(255), primary key (level))
11:41:22,566 INFO SchemaExport:281 ? schema export complete[/quote]

E não cria a tabela, alguma sugestão antes de voltar à duvida inicial? Preferi tentar criar assim porque pode ser que o hibernate não estivesse reconhecendo uma tabela já criada e tal dai eu decidi criar por ele mesmo pra ver se pode resolver, quem sabe.
Eu suspeito que seja algo em torno do dialeto hibernate.dialect = org.hibernate.dialect.MySQL5Dialect pois caso eu apague tudo que vem após essa linha no hibernate.properties ele continua dando o mesmo retorno, porém já tentei diversos tipos de dialeto do mysql e até agora nada!