Hibernate中的配置文件详解

本文详细解析了Hibernate框架的配置文件,包括数据库连接设置、方言选择、全局属性配置,如显示SQL语句,以及持久化类和实体映射表的关联。重点介绍了主键管理策略和一对一、一对多多对一的关联关系配置,如lazy加载和cascade属性的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 语句;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值