hibernate相关面试题(不看后悔,一看必懂)

版权声明:本文为博主原创文章,未经博主允许可以转载。 https://blog.csdn.net/qq_36071795/article/details/83792238

概述

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查询

 

猜你喜欢

转载自blog.csdn.net/qq_36071795/article/details/83792238
今日推荐