2016-05-06 18 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(); 
    } 
    } 
} 

これは、マッピング

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> 

のための私のベン/ POJOクラスであり、これはPOJOクラスのCFGファイルです:

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

+0

これはあなたの主な問題はありません:JDBCが見つかりませ最適なドライバ:mysqlの:// localhostを:3306/TESは、おそらくまた、ログを設定したい –

+1

あなたのlog4j設定でhibernate用のappenderを使って残りのノイズを取り除く。 –

+0

はい!これがあなたの主な問題です:jdbc:mysql:// localhost:3306/testに適したドライバが見つかりません。 – Shaurya

答えて

1

あなたは、あなたのクラスパスにMySQL JDBCドライバのJARを配置する必要があり

+0

ありがとうLee!私はすでにそれをやったが、mysql connector jar 3.0.11と5.1.5はどちらもエラーが残っている。 – Shaurya

+0

ドライバのバージョンを確認してください – Lee

+0

xammpのsql version 5.5.25a、mysql connector 5.1.5 – Shaurya

関連する問題