10 Replies Latest reply on Oct 19, 2007 3:09 PM by siran

    Trouble connection to database with hibernate

    siran

      I created an hibernate.cfg.xml file with the hibernate tools.

      <?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>
       <session-factory>
       <property name="hibernate.connection.driver_jar">mysql-connector-java-5.0.6-bin.jar</property>
       <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
       <property name="hibernate.connection.password"> </property>
       <property name="hibernate.connection.url">jdbc:mysql://localhost/eshop</property>
       <property name="hibernate.connection.username">user</property>
       <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
       </session-factory>
      </hibernate-configuration>


      Reverse Engineering was no problem, it found the database, could read the tables and create the java classes.

      Now I tried to open a simple connection to the database and that doesn*t work. I always get a "no suitable driver found" error.

      Configuration config = new Configuration()
       .setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLInnoDBDialect")
       .setProperty("hibernate.connection.driver_class", "org.gjt.mm.mysql.Driver")
       .setProperty("hibernate.connection.driver_jar", "mysql-connector-java-5.0.6-bin.jar")
       .setProperty("hibernate.connection.password", " ")
       .setProperty("hibernate.connection.url", "jdbc:mysql://localhost:3306/eshop")
       .setProperty("hibernate.connection.username", "user")
       .addClass(Adressen.class);
      
       config.configure();
      
       SessionFactory sessionFactory = config.buildSessionFactory();
      
       Session session = sessionFactory.openSession();
      
       Transaction tx = null;
       try {
       tx = session.beginTransaction();
       System.out.println("works");
      
       } catch (Exception e) {
       if (tx != null) {
       tx.rollback();
       System.out.println("error - rollback");
       }
       } finally {
       session.close();
       }
      
       sessionFactory.close();


      The errors I'm getting are:
      23:41:05,187 INFO [Environment] Hibernate 3.2.4.sp1
      23:41:05,187 INFO [Environment] loaded properties from resource hibernate.properties: {hibernate.connection.username=user, hibernate.connection.password=****, hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect, hibernate.connection.url=jdbc:mysql://localhost:3306/eshop, hibernate.bytecode.use_reflection_optimizer=false, hibernate.connection.driver_class=com.mysql.jdbc.Driver}
      23:41:05,187 INFO [Environment] Bytecode provider name : javassist
      23:41:05,203 INFO [Environment] using JDK 1.4 java.sql.Timestamp handling
      23:41:05,312 INFO [Configuration] Reading mappings from resource: hibernateGenerated/Adressen.hbm.xml
      23:41:05,312 INFO [Configuration] Reading mappings from resource: hibernateGenerated/Adressen.hbm.xml
      23:41:05,515 INFO [HbmBinder] Mapping class: hibernateGenerated.Adressen -> Adressen
      23:41:05,531 INFO [Configuration] configuring from resource: /hibernate.cfg.xml
      23:41:05,531 INFO [Configuration] Configuration resource: /hibernate.cfg.xml
      23:41:05,546 INFO [Configuration] Configured SessionFactory: null
      23:41:05,656 INFO [DriverManagerConnectionProvider] Using Hibernate built-in connection pool (not for production use!)
      23:41:05,656 INFO [DriverManagerConnectionProvider] Hibernate connection pool size: 20
      23:41:05,656 INFO [DriverManagerConnectionProvider] autocommit mode: false
      23:41:05,656 INFO [DriverManagerConnectionProvider] using driver: org.gjt.mm.mysql.Driver at URL: jdbc:mysql://localhost/eshop
      23:41:05,656 INFO [DriverManagerConnectionProvider] connection properties: {driver_jar=mysql-connector-java-5.0.6-bin.jar, user=user, password= }
      23:41:05,656 WARN [SettingsFactory] Could not obtain connection metadata
      java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/eshop
       at java.sql.DriverManager.getConnection(Unknown Source)
       at java.sql.DriverManager.getConnection(Unknown Source)
       at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
       at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
       at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2009)
       at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
       at sample.RegisterAciton.writeInDatabase(RegisterAciton.java:147)
       at sample.RegisterAciton.execute(RegisterAciton.java:246)
       at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
       at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
       at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
       at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
       at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
       at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
       at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
       at java.lang.Thread.run(Unknown Source)
      23:41:06,046 INFO [Dialect] Using dialect: org.hibernate.dialect.MySQLInnoDBDialect
      23:41:06,046 INFO [TransactionFactoryFactory] Using default transaction strategy (direct JDBC transactions)
      23:41:06,046 INFO [TransactionManagerLookupFactory] No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
      23:41:06,046 INFO [SettingsFactory] Automatic flush during beforeCompletion(): disabled
      23:41:06,046 INFO [SettingsFactory] Automatic session close at end of transaction: disabled
      23:41:06,046 INFO [SettingsFactory] Scrollable result sets: disabled
      23:41:06,062 INFO [SettingsFactory] JDBC3 getGeneratedKeys(): disabled
      23:41:06,062 INFO [SettingsFactory] Connection release mode: auto
      23:41:06,062 INFO [SettingsFactory] Maximum outer join fetch depth: 2
      23:41:06,062 INFO [SettingsFactory] Default batch fetch size: 1
      23:41:06,062 INFO [SettingsFactory] Generate SQL with comments: disabled
      23:41:06,062 INFO [SettingsFactory] Order SQL updates by primary key: disabled
      23:41:06,062 INFO [SettingsFactory] Order SQL inserts for batching: disabled
      23:41:06,062 INFO [SettingsFactory] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
      23:41:06,062 INFO [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
      23:41:06,062 INFO [SettingsFactory] Query language substitutions: {}
      23:41:06,062 INFO [SettingsFactory] JPA-QL strict compliance: disabled
      23:41:06,062 INFO [SettingsFactory] Second-level cache: enabled
      23:41:06,062 INFO [SettingsFactory] Query cache: disabled
      23:41:06,062 INFO [SettingsFactory] Cache provider: org.hibernate.cache.NoCacheProvider
      23:41:06,062 INFO [SettingsFactory] Optimize cache for minimal puts: disabled
      23:41:06,062 INFO [SettingsFactory] Structured second-level cache entries: disabled
      23:41:06,078 INFO [SettingsFactory] Statistics: disabled
      23:41:06,078 INFO [SettingsFactory] Deleted entity synthetic identifier rollback: disabled
      23:41:06,078 INFO [SettingsFactory] Default entity-mode: pojo
      23:41:06,078 INFO [SettingsFactory] Named query checking : enabled
      23:41:06,125 INFO [SessionFactoryImpl] building session factory
      23:41:06,437 INFO [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
      23:41:06,515 WARN [JDBCExceptionReporter] SQL Error: 0, SQLState: 08001
      23:41:06,515 ERROR [JDBCExceptionReporter] No suitable driver found for jdbc:mysql://localhost/eshop
      23:41:06,515 INFO [SessionFactoryImpl] closing
      23:41:06,515 INFO [DriverManagerConnectionProvider] cleaning up connection pool: jdbc:mysql://localhost/eshop


      Can anybody tell me, what I'm doing wrong?