Introducción a Hibernate
estructura de tres niveles clásica EE
¿Cuál es el marco
软件的半成品,已经完成部分的功能
¿Qué es Hibernate
Hibernate是一个持久层的ORM框架。
¿Cuál es ORM
ORM: Object Relational Mapping (mapeo-Object relacional). Se refiere a la creación de un mapeo entre objetos Java en una tabla de base de datos relacional, de modo que el operador puede manipular objetos en las tablas de la base de datos.
¿Por qué aprender Hibernate
Una configuración común de Hibernate
pregunta de configuración XML
Véase, en particular,
no puede hibernar cuando se le solicite sobre la escritura de soluciones de documentos XML
mapeado de configuración
class标签的配置
标签用来建立类与表的映射关系
属性:
name :类的全路径
table :表名(类名与表名一致,table可以省略)
catalog :数据库名
id标签的配置
标签用来建立类中的属性与表中的主键的对应关系
属性:
name :类中的属性名
column :表中的字段名(类中的属性名和表中的字段名如果一致,column可以省略)
length :长度
type :类型
property标签的配置
标签用来建立类中的普通属性与表的字段的对应关系
属性:
name :类中的属性名
column :表中的字段名(类中的属性名和表中的字段名如果一致,column可以省略)
length :长度
type :类型
not-null :设置非空
unique :设置唯一
Configuración del núcleo
必须的配置
连接数据库的基本的参数
驱动类
url路径
用户名
密码
方言
可选的配置
显示SQL :hibernate.show_sql
格式化SQL :hibernate.format_sql
自动建表 :hibernate.hbm2ddl.auto
none :不使用hibernate的自动建表
create :如果数据库中已经有表,删除原有表,重新创建,如果没有表,新建表。(测试)
create-drop :如果数据库中已经有表,删除原有表,执行操作,删除这个表。如果没有表,新建一个,使用完了删除该表。(测试)
update :如果数据库中有表,使用原有表,如果没有表,创建新表(更新表结构)
validate :如果没有表,不会创建表。只会使用数据库中原有的表。(校验映射和表结构)。
映射文件的引入
La API de Hibernate
Configuración: objeto de configuración de Hibernate
作用:
加载核心配置文件
加载映射文件
Sesión de fábrica: SessionFactory
SessionFactory内部维护了Hibernate的连接池和Hibernate的二级缓存。是线程安全的对象。一个项目创建一个对象即可。
配置连接池
抽取工具类
Sesión: objeto de conexión es similar al objeto de conexión
Session代表的是Hibernate与数据库的链接对象。不是线程安全的。与数据库交互桥梁。
方法:
save
get/load
update
delete
saveOrUpdate
creatQuery
createSQLQuery
***** get方法和load方法的区别
* get方法
* * 采用的是立即加载,执行到这行代码的时候,就会马上发送SQL语句去查询。
* * 查询后返回是真实对象本身。
* * 查询一个找不到的对象的时候,返回null
*
* load方法
* * 采用的是延迟加载(lazy懒加载),执行到这行代码的时候,不会发送SQL语句,当真正使用这个对象的时候才会发送SQL语句。
* * 查询后返回的是代理对象。javassist-3.18.1-GA.jar 利用javassist技术产生的代理。
* * 查询一个找不到的对象的时候,返回ObjectNotFoundException
Transacción: Objeto Transacción
Hibernate中管理事务的对象
commit();
rollback();