0

for testing purpose i wrote very small code,which repeatedly throws exception related to jdbc driver.

   package sally;

   import org.hibernate.Session;
   import org.hibernate.Transaction;

   public class MainClass {

   public static void main(String args[]){

    try{
        Session session=HibernateUtil.getSession();
        Transaction tx=session.beginTransaction();
        Employee ee=new Employee("abx","asd",2000);
        session.save(ee);
        tx.commit();


    }catch(Exception e){
        e.printStackTrace();
    }
  }
}

This is my ben/pojo class for mapping

package sally;

   public class Employee {
   private int id;
   private String firstName; 
   private String lastName;   
   private int salary;  

  public Employee() {}
  public Employee(String fname, String lname, int salary) {
  this.firstName = fname;
  this.lastName = lname;
  this.salary = salary;
  }
   public int getId() {
   return id;
 }
  public void setId( int id ) {
   this.id = id;
 }
  public String getFirstName() {
  return firstName;
  }
      public void setFirstName( String first_name ) {
      this.firstName = first_name;
      }
      public String getLastName() {
      return lastName;
       }
      public void setLastName( String last_name ) {
      this.lastName = last_name;
      }
        public int getSalary() {
        return salary;
      }
        public void setSalary( int salary ) {
        this.salary = salary;
      }
}


  <?xml version="1.0" encoding="utf-8"?>
  <!DOCTYPE hibernate-mapping PUBLIC 
   "-//Hibernate/Hibernate Mapping DTD//EN"
   "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 

 <hibernate-mapping>
   <class name="sally.Employee" table="EMPLOYEE">
     <meta attribute="class-description">
     This class contains the employee detail. 
     </meta>
     <id name="id" type="int" column="id">
      <generator class="native"/>
     </id>
    <property name="firstName" column="first_name" type="string"/>
    <property name="lastName" column="last_name" type="string"/>
    <property name="salary" column="salary" type="int"/>
  </class>
  </hibernate-mapping>

and this is cfg file for pojo class:

  <?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_class">com.mysql.jdbc.Driver</property>
    <property    name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
    <property name="hibernate.connection.password"></property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="show_sql">true</property>


    <mapping class="sally.Employee"></mapping>
</session-factory>

but every time i am running the code it throws exxception :

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
org.hibernate.exception.JDBCConnectionException: Cannot open connection
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:74)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:420)
    at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
    at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)
    at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
    at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
    at sally.MainClass.main(MainClass.java:12)
Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/test
    at java.sql.DriverManager.getConnection(DriverManager.java:596)
    at java.sql.DriverManager.getConnection(DriverManager.java:187)
    at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:417)
    ... 5 more

can any body tell whats wrong here???

this is db column list : first_name last_name salary.

4
  • This is your main problem: No suitable driver found for jdbc:mysql://localhost:3306/tes Commented May 6, 2016 at 11:08
  • 1
    You probably also want to set a log appender for hibernate in your log4j config to get rid of the rest of the noise. Commented May 6, 2016 at 11:08
  • yes ! This is your main problem: No suitable driver found for jdbc:mysql://localhost:3306/test is main problem. Commented May 6, 2016 at 11:21
  • sql version 5.5.25a in xammp , mysql connector 5.1.5 Commented May 6, 2016 at 11:38

3 Answers 3

2

You need to put the mysql JDBC driver JAR on your classpath

Sign up to request clarification or add additional context in comments.

3 Comments

well thanks Lee! i already did it, iput mysql connector jar 3.0.11 and 5.1.5 both but error still persists.
check the version of the drivers
sql version 5.5.25a in xammp , mysql connector 5.1.5
0

name for the driver class must be updated as well as server time zone (for me this is insane but it has to be done

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/hibernate?serverTimezone=UTC</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    </session-factory>
</hibernate-configuration>

Comments

0

org.hibernate.exception.JDBCConnectionException: Cannot open connection It occurs when you have not started the xampp and MySql.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.