2017-01-15 7 views
0

私は初めてhibernateを学習しているので、エラーを見つけることができません。 student007テーブルがデータベースに作成され、クライアントクラスが実行されました。私が理解しているエラーを分析することによって、sessionfactoryパートに問題があります。また、Oracleドライバは、クラスが見つからない例外 student.hbm.xmlHibernateのbuildSessionFactoryによってClassNotFoundExceptionがスローされました

<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 

    <hibernate-mapping> 

     <class name="beans.Student" table="student007" schema="system"> 

      <id name="id" column="sid"/> 
      <property name="name" column="sname"/> 
      <property name="email" column="semail"/> 
      <property name="marks" column="smarks"/> 

     </class> 

    </hibernate-mapping> 

hibernate.cfg.xmlの

<!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="connection.driver_class">oracle.jdbc.oracleDriver</property> 
     <property name="connection.url">jdbc:oracle:thin:@localhost:1521:xe</property> 
     <property name="connection.username">system</property> 
     <property name="connection.password">manager</property> 
     <property name="connection.pool_size">10</property> 
     <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property> 
     <mapping resource="resource/student.hbm.xml"/> 
    </session-factory> 

</hibernate-configuration> 

client.java

を言うと、エラーがあります
package test; 

import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.cfg.Configuration; 

import beans.Student; 

public class Client { 

    public static void main(String[] args) { 

     Student st = new Student(); 
     st.setId(111); 
     st.setName("Ishan"); 
     st.setEmail("[email protected]"); 
     st.setMarks(90); 

     Configuration cfg = new Configuration(); 
     cfg.configure("resource/hibernate.cfg.xml"); 
     SessionFactory sf = cfg.buildSessionFactory(); 
     //The error appears to be in the above line while building the session factory. 
     Session s = sf.openSession(); 
     s.save(st); 
     s.beginTransaction().commit(); 
     s.evict(st); 


    } 
} 

student.java

package beans; 

public class Student { 

    private int id; 
    private String name; 
    private String email; 
    private int marks; 

    public int getId() { 
     return id; 
    } 

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

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getEmail() { 
     return email; 
    } 

    public void setEmail(String email) { 
     this.email = email; 
    } 

    public int getMarks() { 
     return marks; 
    } 

    public void setMarks(int marks) { 
     this.marks = marks; 
    } 

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


} 

私はこのエラーを取得しています

Jan 16, 2017 7:10:09 PM org.hibernate.Version logVersion 
INFO: HHH000412: Hibernate Core {5.2.6.Final} 
Jan 16, 2017 7:10:09 PM org.hibernate.cfg.Environment <clinit> 
INFO: HHH000206: hibernate.properties not found 
Jan 16, 2017 7:10:10 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> 
INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final} 
Jan 16, 2017 7:10:10 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure 
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:267) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:231) 
    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:240) 
    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 test.Client.main(Client.java:21) 
Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [oracle.jdbc.oracleDriver] 
    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:240) 
    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:257) 
    ... 14 more 
Caused by: java.lang.ClassNotFoundException: Could not load requested class : oracle.jdbc.oracleDriver 
    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 
+0

こんにちは、ようこそ。質問のタイトルに変更して、問題についてより具体的な内容にしてください。これにより、同様の問題を抱えているユーザーがあなたの投稿を簡単に見つけることができます。質問自体に設定を記述することができます。ありがとうございました。 – QueryLars

+0

クラス名 'oracle.jdbc.oracleDriver'は有効なクラス名ではありません。あなたは' oracle.jdbc.OracleDriver'(Oracleの大文字のOに注意してください)を使う必要があります。 –

答えて

0

を助けてください、例外メッセージはそれをすべて言う:Could not load requested class : oracle.jdbc.oracleDriver

ですから、スペルミス場合、私がチェックまず最初にあなたは本当にそうしています。クラス名は大文字で始まります。 ドライバの正しい名前は、oracle.jdbc.OracleDriverです。

関連する問題