2017-06-23 18 views
0

にHibernateを使用してデータベースにユーザーを追加しようとしたときに、私は次のエラーを持っている:例外:要求されたサービスを作成できませんHibernateはエラー

WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) 
Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:271) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 
    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51) 
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352) 
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111) 
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83) 
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418) 
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:691) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:726) 
    at Main.main(Main.java:16) 
Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [com.mysql.jdbc.Driver] 
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:348) 
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.loadDriverIfPossible(DriverManagerConnectionProviderImpl.java:160) 
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildCreator(DriverManagerConnectionProviderImpl.java:116) 
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:100) 
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:72) 
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145) 
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66) 
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) 
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259) 
    ... 14 more 
Caused by: java.lang.ClassNotFoundException: Could not load requested class : com.mysql.jdbc.Driver 
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl$AggregatedClassLoader.findClass(ClassLoaderServiceImpl.java:336) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:345) 
    ... 26 more 
ここ

は私のUserクラスです:

@Entity 
public class User { 

@Id 
private int id; 
private String username; 
private String password; 
private String address; 
private String email; 
private String phone; 
private int year; 
private String type; 


public User(int id, String username, String password, String address,String email, String phone, int year, String type) 
    { 
     this.id=id; 
     this.username=username; 
     this.password=password; 
     this.address=address; 
     this.email=email; 
     this.phone=phone; 
     this.year=year; 
     this.type=type; 
    } 


public User() { 
    // TODO Auto-generated constructor stub 
} 


public int getId() { 
    return id; 
} 


public void setId(int id) { 
    this.id = id; 
} 


public String getUsername() { 
    return username; 
} 


public void setUsername(String username) { 
    this.username = username; 
} 


public String getPassword() { 
    return password; 
} 


public void setPassword(String password) { 
    this.password = password; 
} 
//here are more getters and setters.. 

そして、それはHibernate設定ファイルです:

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE hibernate-configuration SYSTEM 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 

<hibernate-configuration> 
    <session-factory> 
     <property name="hibernate.dialect"> 
      org.hibernate.dialect.MySQLDialect 
     </property> 
     <property name="hibernate.connection.driver_class"> 
      com.mysql.jdbc.Driver 
     </property> 

     <!-- Assume test is the database name --> 
     <property name="hibernate.connection.url"> 
      jdbc:mysql://localhost:3306/licenta 
     </property> 
     <property name="hibernate.connection.username"> 
      root 
     </property> 
     <property name="hibernate.connection.password">root</property> 
     <mapping resource="user.hbm.xml" /> 

    </session-factory> 
</hibernate-configuration> 

メイン方法:ここで

public static void main(String[] args) 
    { 

     User u=new User(); 
     u.setId(1); 
     u.setUsername("lalalla"); 
     SessionFactory sessionFactory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory(); 
     Session session = sessionFactory.openSession(); 
     session.beginTransaction(); 
     session.save(u); 
     session.getTransaction().commit(); 

     session.close(); 

    } 

は、私はJARファイルenter image description here enter image description here

私はこの解決策を見つけることができないとの継続的なインストールされている休止状態のバージョンからのすべてのJARがあります。あなたはここで私を助けることができますか?

ありがとうございます!

答えて

0

このエラー

Caused by: java.lang.ClassNotFoundException: Could not load requested class : com.mysql.jdbc.Driver 

は、あなたのクラスパスにMySQL用のJDBCドライバを持っていないことを意味します。私はあなたの瓶を点検し、私はそれを見つけなかった。クラスパスにこのjarファイルを追加する必要があります。

あなたはそこコネクタhttps://dev.mysql.com/downloads/connector/j/

を見つけることができますまたはあなたはMavenの使用している場合:

<dependency> 
    <groupId>mysql</groupId> 
    <artifactId>mysql-connector-java</artifactId> 
    <version>5.1.6</version> 
</dependency> 
関連する問題