Hibernate学习笔记
来源:互联网 发布:java面试会考哪些算法 编辑:程序博客网 时间:2024/04/26 04:30
Hibernate学习笔记
本笔记的内容:
- 分层体系结构
- ORM介绍
- Hibernate简介
- Hibernate开发步骤
- Hibernate核心API
分层体系结构
经典的三层结构(图1)
- 表现层:提供与用户交互的界面.(例如Swing界面或JSP页面)
- 业务逻辑层:实现各种业务逻辑.(例如网店计算用户的等级而实施优惠的计算.并将交易记录保存到数据库.)
- 资源层(多位关系型数据库):保存与管理持久业务数据.(例如用户的姓名,年龄…)
N层结构(图1)
- 在三层中的逻辑层分离出一个数据访问层,从而直接进行数据库的访问
图1
分层体系结构的优点缺点
- 优:可维护性(修改一部分,不影响其他部分),可重用性(底层代码重用),可管理性(分工合作),可扩展性(容易添加新功能).
- 缺:…
ORM
- ORM的全称是Object Relational Mapping,即对象关系映射。对象-关系映射实现了面向对象世界中对象到关 系数据库中的表的自动的(和透明的)持久化,使用元数据(metadata)描述对象与数据库间的映射.简单来说.ORM冲当翻译功能,例如不会说外语的中国人照样可以请个翻译家去泡外国的妞!ORM就是那个翻译家了
- 理解面向对象世界与关系数据库世界:在面向对象世界中,是以对象出现的(类,属性),类对应着数据库的表,而类的属性对应着数据库的字段.
Hibernate简介
- Hibernate: 它是一种能实现ORM的框架,它提供了强大的对象和关系数据库映射以及查询功能,且是开源(LGPL)的.
Hibernate开发步骤
- 一 POJO(Plain Old Java Objects) ,有一些属性及其getter setter方法的JavaBeans类,并实现一个默认的构造函数.
- 二 持久化类和关系数据库的映射:即是编写 *.nbm.xml文件,用于映射数据库的的表(字段)和POJO类(属性).
一个学生数据库表对应的映射文件:Student.hbm.xml
- 三 Hibernate配置文件:默认为hibernate.cfg.xml或hibernate.properties.
一个hibernate.cfg.xml列子:hibernate.cfg.xml - 四 使用Hibernate API:
- Configuration:Configuration 类负责管理Hibernate 的配置信息,运行时读取数据库URL,用户名和密码等信息….Hibernate会自动在当前的CLASSPATH 中搜寻Hibernate.cfg.xml文件并将其读取到内存中作为后继操作的基础配置.Configuration config = new Configuration().configure();
- SessionFactory:会话工厂缓存了生成的SQL语句和Hibernate在运行时使用的映射元数据.它在多个应用线程间进行共享.通常情况下, 整个应用只有唯一的一个会话工厂.SessionFactory负责创建Session实例.我们可以通过Configuation实例构建SessionFactory:Configuration config = new Configuration().configure();
SessionFactory sessionFactory = config.buildSessionFactory(); - Session:Session是持久层操作的基础,相当于JDBC中的Connection.Session实例通过SessionFactory实例构.Transaction:使用Hibernate进行操作时(增,删,改)必须显示的调用Transaction(默认:autoCommit=false).Configuration config = new Configuration().configure();
SessionFactory sessionFactory = config.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
Student stu=new Student();
//set value to stu
session.save(stu);
tx.commit();
…
Hibernate核心API
- Configuration类:用于配置和启动Hibernate,给Hibernate指定映射文件和Hibernate配置属性,然后创建SessionFactory实例.
- SessionFactory接口:一个SessionFactory实例对应着一个存储源(同一个数据库的连接),并可产生出Session对象.SessionFactory是线程安全的,可被多个应用线程共享.创建了SessionFactory应不轻易销毁(它是重量级的,有很大的缓存),如果访问多个数据库应该对应着个数建立SessionFactory实例!(看图)
- Session接口:称为持久化管理器,提供与持久化相关的操作,如添加,更新,删除,加载和查询对象.Session是轻量级线程,使用完应该要销毁.也不是线程安全的,避免多个线程共享同一个Session实例.
- Transaction接口:Transaction接口是Hibernate的数据库事务接口,对底层的事物接口进行封装(JDBC API,JTA,CORBA).
- Query和Criteria接口:这两个是Hibernate的查询接口.
- 【Hibernate学习笔记】hibernate入门
- Hibernate学习笔记:初识Hibernate
- Hibernate Synchronizer 学习笔记
- hibernate学习笔记1
- Hibernate 学习笔记
- Hibernate学习笔记
- Hibernate 学习笔记
- Hibernate 实例学习笔记
- Hibernate学习笔记(1)
- hibernate学习笔记
- Hibernate学习笔记(一)
- Hibernate学习笔记
- Hibernate学习笔记!- -
- Hibernate学习笔记(一)
- Hibernate学习笔记
- Hibernate 学习笔记
- Hibernate Synchronizer 学习笔记
- Hibernate 学习笔记
- linux填空
- Hibernate SQL方言
- USACO 2008 March Gold cowjog
- 帧内预测与帧间预测
- 在iis中注册asp.net 2.0 (zz)
- Hibernate学习笔记
- 五种提高 SQL 性能的方法
- Linux选择题
- Struts入门教程(一)
- Struts入门教程(二)
- 论坛E-mail验正的正则表达式升级
- 一个在校大学生和我的Email交流,希望能引起共鸣和思考~~纯属交流~~
- Struts入门教程(三)
- 好看