@Before
public void initl(){
try {
//创建配置对象
config = new Configuration().configure("Demo2/hibernate.cfg.xml");
// //创建服务注册对象
// StandardServiceRegistry service = new StandardServiceRegistryBuilder().applySettings(config.getProperties()).build();
//加载对象-映射文件
// config.addClass(Demo2.Student.class);
//创建会话工厂对象
sessionFactory = config.buildSessionFactory();
//创建会话
session = sessionFactory.openSession();
//创建事务
tx = session.beginTransaction();
} catch (Exception e) {
e.printStackTrace();
throw e;
// TODO: handle exception
}
}
在创建配置对象这一行,即config = new Configuration().configure("Demo2/hibernate.cfg.xml")这一条。众所周知,加载配置可以用两种方法,一是configure(),另一种则是configure(File configFile)。令我不解的是,在我的实际编写中,第一种不带参数的方法始终报错(hibernateException:Could not locate .....)。相反第二种却是毫无问题。想到此,大家也许就知道,可能是hibernate.cfg.xml文件和运行测试类文件所在地不一样,或者没有在指定文件夹或包中导致的。
但是,这里又有一个新疑问。当我用java文件编写配置文件时,即hibernate.properties文件。却没有这样的问题。不用指定配置文件所在地。轻而易举的获得配置。
我不会解答这个问题。因为不是很懂。希望有大牛能不能帮我解答一下。谢谢啦