Hibernate学习笔记Hibernate学习笔记.doc
文本预览下载声明
Hibernate
1.定义
Hibernate是一个ORM框架,主要作用是简化应用的数据持久层编程,框架位于应用层和数据库之间,解决数据持久层编程,hibernate主要包括持久化对象,hibernate属性文件以及XML映射文件
2. 常用API
2.1 Configuration
该类提供了configure方法,可以用来读取指定的hibernate属性文件,为获得连接数据库对象做好准备
例:Configuration conf = new configuration();
conf.configure(“hibernate.cfg.xml”);
注意:如果属性文件是hibernate.cfg.xml 其实该方法可以不写参数
2.1 SessionFactory
该类是Session对象的工厂类,一个应用有一个唯一的Sessionfactory对象, Sessionfactory是不可改变的,可通过Configuration获取
例: Configuration conf = new configuration();
conf.configure(“hibernate.cfg.xml”);
SessionFactory sf = conf.build SessionFactory;
2.3 Session
该接口是java和hibernate意见的一个主要的运行期接口,是提供持久化服务的核心API,该类类似于一个数据库连接对象,其生命周期贯穿整个逻辑事物的始末,主要功能是用来操作持久化对象,进行增删改查,如果进行增删改查,必须使用session对象开始一个事物,并提交才可以生效,事物的接口是Transaction
Configuration conf = new configuration();
conf.configure(“hibernate.cfg.xml”);
SessionFactory sf = conf.build SessionFactory;
Session session = sf.openSessiuon();
Transaction tr = session.beginTransaction;
//持久化类
Custorm cu = new Custorm(“123”,”23”,”beijing”)
session.save(cu);
mit;
session.close;
3.hibernate核心知识点
3.1 持久化类
要求
3.11.必须提供public的无参构造方法
3.12必须有一个标识属性
3.13类的属性都是private权限
3.14提供getXXX,setXXX方法
3.2对象状态
3.21 瞬时状态
单纯new的类
Custorm cu = new Custorm(“123”,”23”,”beijing”)
不能修改数据库数据
3.22 持久状态
与session相关联的,与数据库的一条记录相对应,并拥有持久化标示(可能是主键?),当事务提交时,hibernate自动检测到对象的变化,并持久化到数据库中
Custorm cu = (Custorm)session.get(Custorm.class,”123”);
cu.setUsrName(“abc”);
3.3 托管状态
当与持久对象相关联的session关闭后,该对象变成托管状态,可以继续使用,当再次与一个session关联后就再可以装换成持久状态对象,托管期间进行的修改被持久化到数据库中
4.映射文件的基本结构
后缀为.hbm.xml
属性
4.1 class元素
4.11 name :持久化类的完整名字 (路径)
4.12 table :对应的表名
4.13 discriminator-value:指定区分值,区分不同的子类
4.14 polymorphism:多态性,默认值为implicit 可以指定为explicit
4.15 lazy:延迟加载可以指定为true或false
4.16 abstract:抽象类,指定该类是否为抽象父类
4.2 id元素
Class元素下必须存在id元素,用来对应与表的主键对应·的属性
4.21 name 持久化类中的表示属性名字
4.22 type 表示属性的hibernate类型(也可以是java类型)
4.23 column 表中的主键字段
4.3 generator元素
Id元素下必须必须存在该元素,用来指定表示属性的生成类,这些类都实现了IdentiferGenerator接口
例generator class=”assigned”/
4.31 increment 自动增加,用于为long,short,int类型生成唯一标识
4.32 identity 对DB2,My
显示全部