2016-05-06 6 views
0

для целей тестирования. Я написал очень маленький код, который неоднократно выдает исключение, связанное с драйвером jdbc.org.hibernate.exception.JDBCConnectionException: Не удается открыть соединение

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(); 
    } 
    } 
} 

Это мой бен/класс POJO для отображения

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> 

и это CFG файл для класса Pojo:

<?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> 

, но каждый раз, когда я бегу код, который он выбрасывает:

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 

может любое тело сказать, что тут неправильно ???

это список столбцов db: first_name last_name зарплата.

+0

Это ваша главная проблема: Нет подходящий драйвер найден для JDBC: MySQL: // Localhost: 3306/тес –

+1

вероятно Вы также хотите установить журнал appender для спящего режима в вашей конфигурации log4j, чтобы избавиться от остальной части шума. –

+0

да! Это ваша основная проблема. Не найдено подходящего драйвера для jdbc: mysql: // localhost: 3306/test - основная проблема. – Shaurya

ответ

1

Вы должны поставить MySQL JDBC JAR драйвера на вашем пути к классам

+0

хорошо спасибо Ли! Я уже сделал это, iput mysql connector jar 3.0.11 и 5.1.5 оба, но ошибка по-прежнему сохраняется. – Shaurya

+0

проверить версию драйверов – Lee

+0

sql версия 5.5.25a в xammp, разъем mysql 5.1.5 – Shaurya

Смежные вопросы