hibernate也就这些东东

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

hibernate底层依然是jdbc实现的,    Hibernate是一个对象关系映射模型。

hibernate应用程序的大体流程:

创建Hibernate的配置文件

创建持久化类:javabean

创建对象-关系映射文件

通过Hibernate API编写访问数据库的代码

 

 

 

 

 

 

使用Hibernate操作数据库需要七个步骤

(1读取并解析配置文件

Configuration conf = new Configuration().configure();

(2)读取并解析映射信息,创建SessionFactory

SessionFactory sf = conf.buildSessionFactory();

(3)打开Session

Session session = sf.openSession();

(4)开始一个事务(增删改操作必须,查询操作可选)

Transaction tx = session.beginTransaction();


(5)数据库操作

session.save(user);//或其它操作

(6)提交事务(回滚事务)

tx.commit();(tx.rollback();)

7)关闭session

session.close();

 

hibernatede的API

Configuration:负责管理Hibernate的配置信息

 

SessionFactiory:Hibernate配置文件分为两种格式,一种是xml格式的配置文件,另一种是Java属性文件格式的配置文件

 

HibernateJDBCTransaction根本就是conn.commit

 

Session:般的持久化方法(CRUD)都是通过Session来调用的,Session是非线程安全的

transaction:Hibernate是对JDBC的轻量级对象封装,Hibernate本身是不具备Transaction处理功能的,HibernateTransaction实际上是底层的JDBC Transaction的封装,或者是JTA Transaction的封装。

 

hibernate配置

 

第一种是使用hibernate.properties文件作为配置文件。

第二种是使用hibernate.cfg.xml文件作为配置文件。

hibernate映射

本质:将关联关系映射到数据库,所谓的关联关系是对象模型在内存中的一个或多个引用

单向关联:假设存在两张表person表和address表,如果在应用的业务逻辑中,仅需要每个person实例能够查询得到其对应的Address实例,而Address实例并不需要查询得到其对应的person实例;或者反之。

双向关联:既需要每个person实例能够查询得到其对应的Address实例,Address实例也需要查询得到其对应的person实例。

 

多对一(many to one):如用户和组 学生和班级

一对多(one to many):如用户和电子邮件

多对多(many to many):如学生选课

一对一(one to one):如用户和身份证

二.单向多对一

多个用户属于同一个组,多个学生处于同一个班级

Group:一的一方,不需要维护关系,所以和普通配置一样

User:多的一方,需要维护双方关系,内有一的一方引用:

cascade(级联)allnonesave-updatedelete

 

三.单向一对多

Class(班级)和Student(学生)之间是一对多的关系

 

四:双向一对多关联

      所谓双向一对多关联,同时配置单向一对多和单向多对一就成了双向一对多关联,上面两种都是单向的,但是在实际开发过程中,很多时候都是需要双向关联的,它在解决单向一对多维护关系的过程中存在的缺陷起了一定的修补作用

Hibernate继承关系映射

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值