hibernate知识点分析之三个重点接口

本文深入分析Hibernate中的Configuration接口,包括通过hibernate.properties和hibernate.cfg.xml配置文件创建实例,以及如何添加持久化类。接着讨论SessionFactory的创建,强调其作为session工厂的角色和线程安全性。最后,详细阐述了Session对象的三种状态及其操作,如save(), saveOrUpdate(), persist(), update(), delete(), merge()等方法的使用和区别。" 125204678,569322,蓝桥杯集训编程题:使用Scratch实现指令移动,"['Scratch编程', '蓝桥杯比赛', '儿童编程', '图形化编程', '编程教育']
摘要由CSDN通过智能技术生成

Configuration

Configuration接口的作用是对Hibernate进行配置,以及对它进行启动,一般只创建一个实例。在Hibernate的启

动过程中,Configuration类的实例首先定位映射文档的位置,读取这些配置,然后创建一个SessionFactory对象。  

1.Configuration的创建方式

   1.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);
  sessionFactory = cfg.buildSessionFactory();

  1.2  hibernate.cfg.xml作为配置文件

//hibernate的配置文件如果自定义的话就要指定文件名
//Configuration config = new Configuration().configure("myhibernate.cfg.xml"); 

//hibernate的配置文件名默认是hibernate.cfg.xml,可以不用指定
  Configuration config = new Configuration().configure(); 

  SessionFactory  sessionFactory = config.buildSessionFactory();

  1.3 无配置文件

       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" , "admin")
	.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")
	.setPrope
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值