org.hibernate.cfg.Configuration实例代表了应用程序到SQL数据库的配置信息,每个HIbernate配置文件对应一个Configuration对象,Configuration为启动期间对象,其作用为创建SessionFactory实例。
创建Configuration对象
1.使用hibernate.properties作为配置文件
hibernate.properties配置文件没有提供添加Hibernate持久化类的方式,因此使用hibernate.properties作为配置文件时,必须调用Configuration对象的addAnnotatedClass()或addPackage()方法添加持久化类。
Configuration cfg = new Configuration().configure().addAnnotatedClass(com.hibernate.demo.domain.News.class);
StandardServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();
sessionFactory = cfg.buildSessionFactory(serviceRegistry);
2.使用hibernate.cfg.xml作为配置文件
Configuration cfg = new Configuration().configure();
StandardServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();
sessionFactory = cfg.buildSessionFactory(serviceRegistry);
3.不使用配置文件创建Configuration对
Configuration对象提供了下列方法进行持久化类和设置配置属性:
1.Configuration.addAnnotatedClass(Class annotatedClass) :添加一个持久化类。
2.Configuration.addPackage(String packageName):添加指定包下面所有持久化类
3.Configuration.setProperties(Properties properties):通过Properties实例设置属性。
4.Configuration.setProperty(String propertyName,String value):设置单个属性。
// 实例化Configuration,不加载任何配置文件
Configuration conf = new Configuration()
// 通过addAnnotatedClass()方法添加持久化类
.addAnnotatedClass(org.crazyit.app.domain.News.class)
// 通过setProperty设置Hibernate的连接属性。
.setProperty("hibernate.connection.driver_class"
, "com.mysql.jdbc.Driver")
.setProperty("hibernate.connection.url"
, "jdbc:mysql://localhost/hibernate")
.setProperty("hibernate.connection.username" , "root")
.setProperty("hibernate.connection.password" , "32147")
.setProperty("hibernate.c3p0.max_size" , "20")
.setProperty("hibernate.c3p0.min_size" , "1")
.setProperty("hibernate.c3p0.timeout" , "5000")
.setProperty("hibernate.c3p0.max_statements" , "100")
.setProperty("hibernate.c3p0.idle_test_period" , "3000")
.setProperty("hibernate.c3p0.acquire_increment" , "2")
.setProperty("hibernate.c3p0.validate" , "true")
.setProperty("hibernate.dialect"
, "org.hibernate.dialect.MySQL5InnoDBDialect")
.setProperty("hibernate.hbm2ddl.auto" , "update");
// 以Configuration实例创建SessionFactory实例
StandardServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();
SessionFactory sf = conf.buildSessionFactory(serviceRegistry);