Hibernate(day1)

课程安排:
 <1>:Hibernate概念和Hibernate编程
 <2>:Hibernate的主键生成策略和对象状态
 <3>:Hibernate的映射关系
 <4>:Hibernate的继承映射,事务
 <5>:Hiberante的锁机制
知识点:
 掌握对象持久化的概念
 理解ORM的作用
 比较几种常用的ORM框架
 掌握Hibernate的体系结构
 分析Hibernate的API
 编写简单的Hibernate程序
Open Source:开源框架
  (1):把通用的步骤以project形式发布到网上。
  (2):开发人员可以修改源代码。
  (3):个人或者是基金组织
规范:SUN发布,每个开发人员和厂商必须遵循的。
ORM(Object Relational Mapping):
 <1>:Java应用程序中持久化对象到关系数据库表之间的映射
 <2>:映射原则:
  <1>:实体名 ============  表名
  <2>:属性===============  列
  <3>:关系 ==============  外键
   继承映射

ORM产品:
 Hibernate 全自动 sql  select
 ibatis    半自动 sql
JPA(规范): Java Persistence Api
 java  ===== jdbc  ===db
 java=======hibernate====db
 java=======ibaits====db
     JDBC
 java     ====== JPA  HIBETANTE DB
     IBATIS
 
Hibernate配置:
   hibernate.cfg.xml 描述数据库相关信息
   *.hbm.xml:描述实体属性到关系数据库表之间的具体映射原则
User实体     表User
id 1  id=ttt   ttt1
name lili name=email  email lili
password 6868 password=userpwd userpwd 6868

Hibernate对javabean的要求:
 <1>:set|get
 <2>:必须有唯一标识
 <3>:无参数构造函数
 <4>:集合类型必须声明为接口类型
Configuration
 概述:Configuration 类负责管理Hibernate 的配置信息。它包括如下内容:
 Hibernate运行的底层信息:数据库的URL、用户名、密码、JDBC驱动类,数据库Dialect,数据库连接池等。
 Hibernate映射文件(*.hbm.xml)。
SessionFactory
概述:应用程序从SessionFactory(会话工厂)里获得Session(会话)实例。它在多个应用线程间进行共享。通常情况下,整个应用只有唯一的一个会话工厂——例如在应用初始化时被创建。然而,如果你使用Hibernate访问多个数据库,你需要对每一个数据库使用一个会话工厂。
     会话工厂缓存了生成的SQL语句和Hibernate在运行时使用的映射元数据。
Session
Session不是线程安全的,它代表与数据库之间的一次操作,它的概念介于Connection和Transaction之间。
 Session也称为持久化管理器,因为它是与持久化有关的操作接口。
 Session通过SessionFactory打开,在所有的工作完成后,需要关闭。
它与Web层的HttpSession没有任何关系。
Transaction
概述:
      它将应用代码从底层的事务实现中抽象出来——
 这可能是一个JDBC事务,一个JTA用户事务或者甚至是
 一个公共对象请求代理结构(CORBA)——允许应用通过
 一组一致的API控制事务边界。这有助于保持Hibernate
 应用在不同类型的执行环境或容器中的可移植性。
Query:
Query(查询)接口允许你在数据库上执行查询并控制查询如何执行。
查询语句使用HQL或者本地数据库的SQL方言编写。

 

Session注意点:
 1:get  有结果都返回  无结果 返回NULL
 2:load 有结果都返回  无结果 抛异常

 

 

session


Configuration cfg = new Configuration().configure();
SessionFactory sessionFactory = cfg.buildSessionFactory();
Session session = sessionFactory.openSession();
  Transaction tx = session.beginTransaction();

你可能感兴趣的:(Hibernate(day1))