笔记10.28(hibernate框架)

低耦合”给软件项目带来的优点是:易于变更、易于重用。
高内聚”给软件项目带来的优点是:可读性强、易维护和变更、支持低耦合、移植和重用性强。
强内聚和弱耦合是相辅相成的,一个良好的设计是由若干个强内聚模块以弱耦合的方式组装起来的

必须配置:
在这里插入图片描述
有几个实体类就要,有几个映射文件,就要有几个mapping
可选配置:

<property name="hibernate.show_sql">true</property><!-- sql语句输出到控制台 -->
<property name="hibernate.hbm2ddl.auto">update</property><!-- 如果没有表自动建立表。如果没有类创建类 -->

项目目录结构说明:
在这里插入图片描述

Hibernate配置文件最好放在src目录下

Hibernate API操作流程

  1. 加载Hibernate核心配置文件,创建Configuration对象;
    Configuration cfg=new Configuration().configure().
  2. 创建SessionFactory对象,该对象创建耗费资源,创建一次即可;
    SessionFactory factory=cfg.buildSessionFactory();
  3. 创建Session对象;
    Session session=factory.openSessin();
  4. 开启事务;
    Transaction tran=session.beginTransaction();
  5. 执行增删改查操作;
    save()、update()、delete()、get()/load()
  6. 提交事务
    tran.commit();
  7. 关闭事务/关闭session/关闭sessionFactory
    close();

增删改之后要提交事务:
Transaction tran = null;
tran.commit();

Java程序中区分不同对象。
Java语言中通过内存地址区分不同对象;
两种比较引用变量方法;
1."==" 比较两个变量引用的内存地址是否相同;
2.equals 比较两个变量引用的对象的值是否相同。
用户自定义的类也可以覆盖Object的equals方法实现对象按值进行比较。

映射文件中OID的配置
<generator>子元素用来指定OID的生成器

标识符生成器
Hibernate 自带了很多种标识符生成器:
increment 采用 Hibernate 数值递增的方式;
identity 采用数据库提供的自增长方式;
assigned 主键由应用逻辑产生;
sequence 采用数据库提供的序列方式;
hilo 通过hi/lo算法 // Hibernate 5.0 以后不支持;
seqhilo 通过hi/lo算法;
native 自动选择合适的标识符生成器;
uuid.hex 通过uuid算法。

increment标识符适用范围
increment 标识符:该机制是 Hibernate 以递增的方式为OID赋值。
不依赖于底层数据库系统,适合所有数据库;
适合单独的 Hibernate 应用使用,不适合在集群情况下使用。

identity标识符适用范围
identity 标识符:该机制依赖于底层数据库,需要数据库支持自动增长字段。(底层数据库不管删没删除,如删除id=7 ,如果重新添加一个字段这时id=8)
例如:MySQL、MSSQL、DB2、Sybase等。

assigned 标识符适用范围
assigned 标识符:该机制是由外部程序负责生成 OID, Hibernate 不负责维护主键生成,与Hibernate和底层数据库都无关。(简单的理解为:要手动设置id)
例如: Student 类没有定义 ID,而是以学号 studentNo 作为业务主键

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值