1. Hibernate框架的引入 加载配置文件:
hibernate.cfg.xml
作用:初始化Hibernate配置的全局参数;
2. dialect方言设定:切换不同数据
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
3.配置数据库连接
<property name="connection.password">root</property>
<property name="connection.username">root</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/depempdb?userUnicode=ture&
characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
</property>
<property name="connection.driver_class">
com.mysql.cj.jdbc.Driver
</property>
4.hibernate 全局属性配置:
<!-- 显示SQL语句 -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- 自定提交 -->
<property name="connection.autocommit">true</property>
5. 实体映射表关联:
<mapping resource="com/yc123/entity/Deptinfo.hbm.xml" />
<mapping resource="com/yc123/entity/Empinfo.hbm.xml" />
<mapping resource="com/yc123/entity/Userinfo.hbm.xml" />
6.持久化类的属性配置文件:
<class name="com.yc123.entity.Deptinfo" table="deptinfo" catalog="depempdb">
7.属性映射关系:
<id name="deptId" type="java.lang.Integer">
<column name="deptId" />
<generator class="native" />
</id>
<property name="deptName" type="java.lang.String">
<column name="deptName" length="20" not-null="true" />
</property>
8.主键的管理配置:
<generator class="native">主键管理策略
native--- 由数据库自行关联
identiy--启用数据库自动增长
sequence--提供给Oracle DB2等大型数据库中的序列参数
increment--Hibernate框架类完成自动增长
foreign--引用另外一张表的主键
uuid---自动生成一组序列号,作为主键
.......
注意:Hibernate框架要求数据库的表 必须有主键。
9. Hibernate 中标的关联关系:
通过实体中的属性和配置文件中的标签进行关联:
一对一<one -to -one>:人-- 身份证
一对多 多对一 :员工+部门 老师+学生 学生+课程.....
关联多的那一段的数据:
实 体 中:set list 集合属性;
配置文件中:<set> <list>
<set name=”emps” invers=”true” cascade=””>
<key>
<column name=”deptId”/>
</key>
<one-to-many class=”com.yc123.entity.EmpInfo”>
</set>
多的这一端:
<!-- fetch="select" 关联查询 表示启用新的查询,join:表示直接使用链接查询 -->
<many-to-one name="deptinfo" class="com.yc123.entity.Deptinfo" fetch="join">
<column name="deptId" />
</many-to-one>
注意:fetch=”select|join”;
lazy=”true/false” :懒加载:是否立即查询;
cascde=”delete update save all”;
invers=”true/false”
以上属性 针对QBC 和Session接口提供,save() delete(),get() load() createQuery()等方法
不针对hql 和标准sql 语句;