我试图测试hibernate配置是否正常工作.我试过但是我收到了一个错误:
INFO: HHH000206: hibernate.properties not found
Run Code Online (Sandbox Code Playgroud)
要做到这一点:我创建:
[1] hibernate配置文件[使用xml]
<?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 name="">
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.default_schema">explorecalifornia</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.connection.password">abc123</property>
</session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)
[2]一个hibernate实用程序类
public class HibernateUtilities {
private static SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;
static{
try{
Configuration configuration = new Configuration().configure();
serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
}
catch(HibernateException exception){
System.out.println("Problem creating session factory");
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static void setSessionFactory(SessionFactory sessionFactory) {
HibernateUtilities.sessionFactory = sessionFactory;
}
}
Run Code Online (Sandbox Code Playgroud)
[3]主要方案:
import org.hibernate.Session;
public class Program {
public static void main(String[] args) {
System.out.println("Hibernate");
Session session = HibernateUtilities.getSessionFactory().openSession();
session.close();
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行程序时,我得到了以下内容:
Hibernate
Sep 29, 2013 10:47:15 PM org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.2.Final}
Sep 29, 2013 10:47:15 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.2.5.Final}
Sep 29, 2013 10:47:15 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
Sep 29, 2013 10:47:15 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
Sep 29, 2013 10:47:15 PM org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml
Sep 29, 2013 10:47:15 PM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: /hibernate.cfg.xml
Problem creating session factory
Exception in thread "main" java.lang.NullPointerException
at com.simpleprogrammer.Program.main(Program.java:10)
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我尝试了Google并应用了我找到的方法.但我仍然无法解决问题.有人可以帮帮我吗?
Vla*_*cea 18
这只是一条INFO消息,告诉您没有hibernate.properties文件.此属性文件不是必需的,因此不会阻止您的应用程序工作.
如果您想知道导致SessionFactory创建失败的原因,您需要将catch块更改为:
catch(HibernateException exception){
System.out.println("Problem creating session factory");
exception.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
您应该使用日志记录框架.
您的问题是为您的应用程序创建会话工厂,它发生在HibernateUtilities类中,原因可能是由于,您无法sessionRegistry通过 hibernate Configuration 类创建它来创建会话工厂,因为您在中注册了配置hibernate.cfg.xml
只需替换 HibernateUtilities 类中的以下代码即可
`sessionFactory = configuration.buildSessionFactory(serviceRegistry);`
Run Code Online (Sandbox Code Playgroud)
到
`sessionFactory = configuration.buildSessionFactory();`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80627 次 |
| 最近记录: |