概述
hibernate框架应用在dao层,,hibernate的底层代码是jdbc,它是一个开源的轻量级的框架.
hibernate通过orm思想对数据库进行crud操作.orm中文翻译过来就是对象关系映射,它让实体类(就是通常所说的pojo)和数据库表对应,让实体类的字段和表里的字段对应,通过操作实体类对象来操作数据库表.
需要在src下面书写hibernate.cfg.xml核心配置文件,可以在该核心配置文件中配置连接数据库的信息,还可以配置hibernate的信息(例如配置数据库的方言),还需要把映射文件放在核心配置文件中..表与表之间的映射关系有一对一,一对多,多对多,这些关系都可以在映射文件中进行配置
映射文件用来配置实体类和数据库表一一对应关系..hibernate要求实体类里面有一个属性作为唯一的值来对应表的主键,主键可以有不同的生成策略,比如说native主键自增长和UUID
可以调用HibernateTemplate中的方法实现crud的操作,也可以使用HQL语句(通过书写hql语言)和QBC语句(不用写语句,通过调用方法实现)实现查询
映射配置文件(类名.hbm.xml)
映射配置文件的名称和路径没有特别要求,最好命名为 类名.hbm.xml,路径最好和实体类放在一起,路径的位置需要放在核心配置文件中
<hibernate-mapping>
<!-- 1 配置类和表对应
class标签
name属性:实体类全路径
table属性:数据库表名称
-->
<class name="cn.itcast.entity.User" table="t_user">
<!-- 2 配置实体类id和表id对应
hibernate要求实体类有一个属性唯一值
hibernate要求表有字段作为唯一值
-->
<!-- id标签
name属性:实体类里面id属性名称
column属性:生成的表字段名称
-->
<id name="uid" column="uid">
<!-- 设置数据库表id增长策略
native:生成表id值就是主键自动增长
-->
<generator class="native"></generator>
</id>
<!-- 配置其他属性和表字段对应
name属性:实体类属性名称
column属性:生成表字段名称
-->
<property name="username" column="username"></property>
<property name="password" column="password"></property>
<property name="address" column="address"></property>
</class>
</hibernate-mapping>
核心配置文件
第四步 创建hibernate的核心配置文件
(1)核心配置文件格式xml,但是核心配置文件名称和位置固定的
- 位置:必须src下面
- 名称:必须hibernate.cfg.xml
(2)引入dtd约束
(3)hibernate操作过程中,只会加载核心配置文件,其他配置文件不会加载
第一部分: 配置数据库信息 必须的
第二部分: 配置hibernate信息 可选的
第三部分: 把映射文件放到核心配置文件中
一对多映射配置
一般来说,在一对多映射配置中,一的一方的主键作为多的一方的外键(即一的一方为仅有的外键),主键和外键的名称可以不一致
多对多映射配置
hibernate的hql和qbc查询