Hibernate基本用法:Configuration对象

本文介绍了Hibernate中Configuration对象的创建,包括通过hibernate.properties配置文件、hibernate.cfg.xml配置文件以及不使用配置文件的方式。Configuration对象是连接SQL数据库的配置载体,用于生成SessionFactory。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值