Hibernate框架-API详解(Configuration、SessionFactory、Transaction、Session)

API详解

1、Configuration
// Configuration功能: 配置加载类.用于加载主配置,orm元数据加载
public class Demo {
    @Test
    public void fun1(){
        //1 创建,调用空参构造
        Configuration conf = new Configuration();
        //2 读取指定主配置文件 => 空参加载方法,加载src下的hibernate.cfg.xml文件
        conf.configure();
        //3 读取指定orm元数据(扩展),如果主配置中已经引入映射配置.不需要手动加载
        //conf.addResource(resourceName);
        //conf.addClass(persistentClass);
        
        //4 根据配置信息,创建 SessionFactory对象
        SessionFactory sf = conf.buildSessionFactory();
        
    }
}

2、SessionFactory
// SessionFactory功能: 用于创建操作数据库核心对象session对象的工厂.
//简单说功能就一个---创建session对象
//注意:1.sessionfactory 负责保存和使用所有配置信息.消耗内存资源非常大.
//    2.sessionFactory属于线程安全的对象设计.
//结论: 保证在web项目中,只创建一个sessionFactory.
public class Demo2 {
	@Test
	public void fun1(){
		//1 创建,调用空参构造
		Configuration conf = new Configuration();
		//2 读取指定主配置文件 => 空参加载方法,加载src下的hibernate.cfg.xml文件
		conf.configure();
		//3 读取指定orm元数据(扩展),如果主配置中已经引入映射配置.不需要手动加载
		//conf.addResource(resourceName);
		//conf.addClass(persistentClass);
		
		//4 根据配置信息,创建 SessionFactory对象
		SessionFactory sf = conf.buildSessionFactory();
		//--------------------------------------------------
		//5 获得session
		//打开一个新的session对象
		sf.openSession();
		//获得一个与线程绑定的session对象
		sf.getCurrentSession();
	}
}


3、Transaction

Transaction:封装了事务的操作。

打开事务:

方式一:

Transaction tx = session.getTransaction();
tx.begin();

方式二:

Transaction tx = session.beginTransaction();
提交事务:
tx.commit();

回滚事务:

tx.rollback();


4、Session

事务操作:

//事务操作
public void fun1(){
	//1 创建,调用空参构造
	Configuration conf = new Configuration().configure();
	//2 根据配置信息,创建 SessionFactory对象
	SessionFactory sf = conf.buildSessionFactory();
	//3 获得session
	Session session = sf.openSession();
	//4 session获得操作事务的Transaction对象
	//获得操作事务的tx对象
	//Transaction tx = session.getTransaction();
	//开启事务并获得操作事务的tx对象(建议使用)
	Transaction tx2 = session.beginTransaction();
        //----------------------------------------------
        
        
        //----------------------------------------------
         tx2.commit();//提交事务
	tx2.rollback();//回滚事务
	session.close();//释放资源
	sf.close();//释放资源
}

session的新增:

public void fun2(){
	//1 创建,调用空参构造
	Configuration conf = new Configuration().configure();
	//2 根据配置信息,创建 SessionFactory对象
	SessionFactory sf = conf.buildSessionFactory();
	//3 获得session
	Session session = sf.openSession();
	//4 session获得操作事务的Transaction对象
	//获得操作事务的tx对象
	//Transaction tx = session.getTransaction();
	//开启事务并获得操作事务的tx对象(建议使用)
	Transaction tx2 = session.beginTransaction();
	//----------------------------------------------
	Customer c = new Customer();
	c.setCust_name("一起学Hibernate框架");

	session.save(c);
	//----------------------------------------------
	tx2.commit();//提交事务
	session.close();//释放资源
	sf.close();//释放资源
}

session的查询:

//查询id为1的customer对象
Customer customer = session.get(Customer.class, 1l);
System.out.println(customer);

session的修改:

//修改id为1的customer对象的name属性
//1 获得要修改的对象
Customer c = session.get(Customer.class, 1l);
//2 修改
c.setCust_name("可以啊");
//3 执行update
session.update(c);

session的删除:

//删除id为1的customer对象
//1 获得要修改的对象
Customer c = session.get(Customer.class, 1l);
//2 调用delete删除对象
session.delete(c);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值