Hibernate

本文详细阐述了Hibernate开发所需的三个关键组件:Domain类、映射文件和数据库表创建;并深入探讨了实体类对象的限制,以及如何通过配置文件实现对象与数据库之间的映射与操作;最后介绍了Hibernate的常用Session接口方法及其对象状态管理。
摘要由CSDN通过智能技术生成
 

 

基本概念和CURD

Hibernate需要的三个条件

(1)、Domain类

(2)、 映射文件User.hbm.xml 

(3)、表create table user();

一、开发流程

1、  由Domian object –>mapping->db(官方推荐)

2、  由DB开始,用工具生成mapping和Domain object。(使用较多)

3、  有映射文件开始

二、

1、实体类对象的限制

(1)默认的构造方法(必须的)。Hibernate反射机制调用实体类

(2)有无意义的标示符id(主键)(可选)

(3)非final的,对懒加载有影响(可选)

2、映射文件

一个Java类在映射文件中用一对<class>标签表示。如果有多个Java类在映射文件中要有多个<class>标签。这些<class>标签可以放到一个映射文件中,也可以放到多个映射文件中。

映射文件名一般用 类名.hbm.xml

4、  代码编写

工具类HibernateUtil

public final class HibernateUtil {

       private static SessionFactory sessionFactory;

       private HibernateUtil(){

             

       }

       static{

              Configuration cfg=new Configuration();

              cfg.configure();

              sessionFactory = cfg.buildSessionFactory();

      

       }

       public static SessionFactory getSessionFactory(){

              return sessionFactory;

       }

       public static Session getSession(){

              return sessionFactory.openSession();

       }

}

Session接口中常用方法

1、save,persist保存数据,persist在事务外不会产生insert语句。

       2、delete,删除对象

       3、update,更新对象,如果数据库中没有记录,会出现异常。

       4、get,根据ID查,会立刻访问数据库。

       5、Load,根据ID查,(返回的是代理,不会立即访问数据库)。

       6、saveOrUpdate,merge(根据ID和version的值来确定是save或update),调用merge你的对象还是托管的。

       7、lock(把对象变成持久对象,但不会同步对象的状态)。

 

(1)   瞬时状态:自己new出来的对象就是状态

User user=new User();//user是一个瞬时对象数据库的表中是没有记录和瞬时对象是相对应的

Session.save(user);

(2)   持久状态:数据库表中有相应记录是和这个对象相对应的,并且被session管理

(3)   脱管状态:数据库的表中有一条记录和对象相对应,但它和session没有任何关系了 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值