Hibernate核心配置文件

Hibernate就是一个持久层的ORM的框架

(ORM :Object Relational Mapping.对象关系映射.框架是一个个JAVA类构成的体系结构,属于半成品);
这里写图片描述
Hibernate的优点:
1.用来代替JDBC和DBUtils技术,操作数据库
2.将对关系型数据库操作转换为面向对象操作;

Hibernate映射文件
格式:类名.hbm.xml

这里写图片描述
配置一对一:
比如说通知类DemandNotice 和提醒类 Calendars
发布一个通知,然后工作台出现提醒,所以保存提醒的时候,要保存上通知,所以只需在提醒类上
这里写图片描述
这里写图片描述
这里写图片描述

这里写图片描述
not-null=“false” :允许没有值的实体类为空;

两方的关系配置中都可以使用cascade属性配置级联操作:
save-update: 级联保存,保存一方时级联保存另一方数据.
delete:级联删除,删除一方时级联删除另一方数据.
all:级联删除+级联保存

结论:

*级联操作就是为了简化代码书写.
*级联操作使用的时候要慎重.尤其级联删除.


可以使用**inverse属性,**在一的一方决定是否需要维护关系:
true: 将关系维护反转给对方.我不会维护关系(外键).
false(默认值): 不反转给对方维护. 我会维护关系(外键).

结论:

  • 要不要放弃维护外键要看项目中的业务方向.例如CRM中,录入客户时,不需要指定联系人.录入联系人时需要指定联系人属于哪个客户. 业务上来说,就应该有联系人来维护与客户的关系. 客户不需要维护与联系人的关系. 可以在客户中配置inverse=true来放弃维护关系.(客户和联系人是一对多关系)
    这里写图片描述
    这里写图片描述
  • 问题:如果两方都维护了关系.那么维护关系时,向中间表插入记录,会插入重复的记录.将会报错!!!
    解决方案1: 代码上由一方放弃
    解决方案2: 配置上使用inverse属性,让一方放弃关系维护

级联操作 :cascade

save-update:级联保存
delete:级联删除
all:2合一

结论: 级联操作用来简化操作.但是在多对多中极其危险.一定尽量避免在多对多中配置级联删除.其实不论从操作的危险程度还是业务逻辑角度来看.不存在多对多删除的问题.

Hibernate的核心配置文件

格式:hibernate.cfg.xml
在这里插入图片描述

session-保存

public void fun2(){
	
	//1 创建Configuration
	Configuration conf = new Configuration();
	//2 调用方法读取主配置文件 .默认加载src下的hibernate.cfg.xml
	conf.configure();
	//3 根据配置信息获得SessionFactory工厂对象.由SessionFactory真正保存和使用配置信息
	//SessionFactory创建需要消耗很大内存资源.设计上来说,是线程安全的对象.
	SessionFactory sf = conf.buildSessionFactory();
	//4 获得session.
	Session session = sf.openSession();
	//5 获得操作事务对象
	Transaction tx = session.beginTransaction();
	//数据库操作
	//--------------------------------------------------
	Customer c = new Customer();
	c.setCust_name("jerry");
	session.save(c);
	//--------------------------------------------------
	//提交|回滚事务
	tx.commit();//提交
	//关闭资源
	session.close();
	sf.close();
} 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据同盟会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值