Hibernate + mysql + eclipse

11 respostas
G

é a primeira vez que estou utilizando o hibernate.. gostaria de saber porque esta dando erro ao chamar. Na video aula que eu tenho o kara utiliza o derby mais eu quero o mysql entao creio que seja no dialect, sei la so um palpite.

public void chamaHibernate() {

		SessionFactory sf = (SessionFactory) new AnnotationConfiguration()
				.setProperty("hibernate.dialect", "org.hibernat.dialect.Mysql")
				.setProperty("hibernate.connection.driver_class",
						"com.mysql.jdbc.Driver").setProperty(
						"hibernate.connection.url",
						"jdbc:mysql://127.0.0.1:1527/laboratorio").setProperty(
						"hibernate.connection.username", "root").setProperty(
						"hibernate.connection.password", "root").setProperty(
						"hibernate.show_sql", "true").setProperty(
						"hibernate.format_sql", "true").setProperty(
						"hibernate.c3p0.acquire_increment", "1").setProperty(
						"hibernate.c3p0.idle_test_period", "100").setProperty(
						"hibernate.c3p0.max_size", "10").setProperty(
						"hibernate.c3p0.max_statements", "0").setProperty(
						"hibernate.c3p0.min_size", "5").setProperty(
						"hibernate.c3p0.timeout", "100").addAnnotatedClass(
						UsuarioH.class).buildSessionFactory();
		Session session = sf.openSession();

		session.beginTransaction();

		// trecho regra de negocio

		UsuarioH user = (UsuarioH) session.get(UsuarioH.class, 1);
		System.out.println("meu hibernat: " + user.getNome());

		// fim da regra de negocio
		session.getTransaction().commit();
		session.close();
		sf.close();
	}

o erro que sta dando é:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
	at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
	at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151)
	at tela.CadUsuario.chamaHibernate(CadUsuario.java:384)
	at tela.CadUsuario$1.actionPerformed(CadUsuario.java:208)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:6216)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
	at java.awt.Component.processEvent(Component.java:5981)
	at java.awt.Container.processEvent(Container.java:2041)
	at java.awt.Component.dispatchEventImpl(Component.java:4583)
	at java.awt.Container.dispatchEventImpl(Container.java:2099)
	at java.awt.Component.dispatchEvent(Component.java:4413)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
	at java.awt.Container.dispatchEventImpl(Container.java:2085)
	at java.awt.Window.dispatchEventImpl(Window.java:2475)
	at java.awt.Component.dispatchEvent(Component.java:4413)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
	... 29 more

desde já,
obrigado pela a ajuda!

11 Respostas

R

Você precisa incluir no seu projeto a biblioteca SFL4J (Simple Logging Facade for Java):

http://www.slf4j.org/

A listagem do erro indica que o Hibernate esperava encontrar uma determinada classe pertencente ao SFL4J, mas não conseguiu.

n3too

ou se vc já tem o jar, vc precisa atualizar

aconteceu esse mesmo erro cmg…

K

alem da dica que o colega acima mencionou eu acredito que tenha um erro de digitação nessa linha.

onde o certo seria

Ate mais

G

Bom galera... obrigado pelas as resposta e detalhe... foram rapidas....Obrigado mesmo!
add os .jars e arrumei o nome do hibernante...

public void chamaHibernate() {

		SessionFactory sf = (SessionFactory) new AnnotationConfiguration()
				.setProperty("hibernate.dialect",
						"org.hibernate.dialect.MySQLDialect").setProperty(
						"hibernate.connection.driver_class",
						"com.mysql.jdbc.Driver").setProperty(
						"hibernate.connection.url",
						"jdbc:mysql://127.0.0.1:1527/laboratorio").setProperty(
						"hibernate.connection.username", "root").setProperty(
						"hibernate.connection.password", "root").setProperty(
						"hibernate.show_sql", "true").setProperty(
						"hibernate.format_sql", "true").setProperty(
						"hibernate.c3p0.acquire_increment", "1").setProperty(
						"hibernate.c3p0.idle_test_period", "100").setProperty(
						"hibernate.c3p0.max_size", "10").setProperty(
						"hibernate.c3p0.max_statements", "0").setProperty(
						"hibernate.c3p0.min_size", "5").setProperty(
						"hibernate.c3p0.timeout", "100").addAnnotatedClass(
						UsuarioH.class).buildSessionFactory();
		Session session = sf.openSession();

		session.beginTransaction();
		
		// trecho regra de negocio

		UsuarioH user = (UsuarioH) session.get(UsuarioH.class, 2);
		System.out.println("meu hibernat: " + user.getNome());

		// fim da regra de negocio
		session.getTransaction().commit();
		session.close();
		sf.close();
	}

porem, ta dando um novo erro. caso possam ajudar de novo.

Exception in thread "AWT-EventQueue-0" org.hibernate.exception.JDBCConnectionException: Cannot open connection
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:97)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)
	at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
	at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)
	at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
	at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353)
	at tela.CadUsuario.chamaHibernate(CadUsuario.java:412)
	at tela.CadUsuario$2.actionPerformed(CadUsuario.java:254)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:6216)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
	at java.awt.Component.processEvent(Component.java:5981)
	at java.awt.Container.processEvent(Container.java:2041)
	at java.awt.Component.dispatchEventImpl(Component.java:4583)
	at java.awt.Container.dispatchEventImpl(Container.java:2099)
	at java.awt.Component.dispatchEvent(Component.java:4413)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
	at java.awt.Container.dispatchEventImpl(Container.java:2085)
	at java.awt.Window.dispatchEventImpl(Window.java:2475)
	at java.awt.Component.dispatchEvent(Component.java:4413)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net.ConnectException
MESSAGE: Connection refused: connect

STACKTRACE:

java.net.ConnectException: Connection refused: connect
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
	at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
	at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
	at java.net.Socket.connect(Socket.java:519)
	at java.net.Socket.connect(Socket.java:469)
	at java.net.Socket.<init>(Socket.java:366)
	at java.net.Socket.<init>(Socket.java:209)
	at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
	at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:271)
	at com.mysql.jdbc.Connection.createNewIO(Connection.java:2744)
	at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
	at java.sql.DriverManager.getConnection(DriverManager.java:582)
	at java.sql.DriverManager.getConnection(DriverManager.java:154)
	at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
	at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
	at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)
	at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
	at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353)
	at tela.CadUsuario.chamaHibernate(CadUsuario.java:412)
	at tela.CadUsuario$2.actionPerformed(CadUsuario.java:254)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:6216)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
	at java.awt.Component.processEvent(Component.java:5981)
	at java.awt.Container.processEvent(Container.java:2041)
	at java.awt.Component.dispatchEventImpl(Component.java:4583)
	at java.awt.Container.dispatchEventImpl(Container.java:2099)
	at java.awt.Component.dispatchEvent(Component.java:4413)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
	at java.awt.Container.dispatchEventImpl(Container.java:2085)
	at java.awt.Window.dispatchEventImpl(Window.java:2475)
	at java.awt.Component.dispatchEvent(Component.java:4413)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


** END NESTED EXCEPTION **



Last packet sent to the server was 0 ms ago.
	at com.mysql.jdbc.Connection.createNewIO(Connection.java:2820)
	at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
	at java.sql.DriverManager.getConnection(DriverManager.java:582)
	at java.sql.DriverManager.getConnection(DriverManager.java:154)
	at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
	... 31 more
n3too

o servico do mysql está startado?

G

cara…esta sim. e tenho uma classe que faz conexao via jdbc e acessa direitinho meu banco.

n3too

vc tem o mysql connector?

n3too

aqui:

não seria localhost/laboratorio?

G

bom galera… Kalunga, roger_rf, n3too obrigadao ae. agora rodo 100%.

nao sei pq pelo ip nao deu,…pq uso ele na conexao jdbc direta e deu…
mais o q importa e que agora posso começar a trabalhar com esta ferramenta.

obrigado mesmo. problema 100% resolvido.

n3too

Guguuu:
bom galera… Kalunga, roger_rf, n3too obrigadao ae. agora rodo 100%.

nao sei pq pelo ip nao deu,…pq uso ele na conexao jdbc direta e deu…
mais o q importa e que agora posso começar a trabalhar com esta ferramenta.

obrigado mesmo. problema 100% resolvido.

então vc colocou localhost e funcionou?

G

sim… nao entendi o pq… mais… eu sempre utilizeis o ip… e sempre funfo… mais

se assim foi entao ta bom ne :lol: valeu… t+

Criado 11 de maio de 2009
Ultima resposta 11 de mai. de 2009
Respostas 11
Participantes 4