hibernate框架

1 什么是框架

(1)   框架可以理解成一个半成品项目,他封装了一些功能,我们需要掌握的如何驾驭这个功能,不需要操心它是怎么实现的。其实他就是按照我们之前所学的内容实现的。

(2)   为什么要使用框架?框架可以提高开发效率。

2 Hibernate框架


Hibernate是dao层的框架,完成的功能是对数据库进行crud(增加(Create)、读取查询(Retrieve)、更新修改(Update)和删除(Delete)

 

Hibernate是一个ORM(ObjectRelational Mapping)框架。

对象关系映射。

 

Hibernate是以面向对象的方式进行数据库的增删改查,甚至不应写sql语句。


Hibernate项目搭建


1、(1)解压

(2)打开lib

(3)打开require文件夹,导入里面所有的包


(4)还需要导入一个之外的数据库的包

2、建立实体bean类

    新建user类

(1) 所有的属性应该设置为private并且附加get和set方法

(2) 构造函数。没写可以,如果要写,至少写两个(必须包含一个空的构造函数)

(3) 字段名设置成包装类。

比如小明考试,为0分,和缺考是有区别的。如果使用基本类型则无法表示,但是使用包装类型则可以设置为null

    (4)实体类里面必须有一个id(主键)

 

3、建立数据库对应的表

可以省略,hibernate可以帮助我们自动根据实体类生成数据表

 

4、建立映射关系

 

    第一步: 建立一个配置文件,命名和位置都没有强硬的规范,一般情况下规定,把这个文件放到对应的bean目录下,命名规范为实体类名+ .hbm + .xml

 

    第二步: 导入约束文件,声明这个文件是hibernate配置文件,导入之后书写配置的时候会有提示信息。

 

    第三步: 配置信息

5、配置hibernate核心配置文件

    第一步: 创建核心配置文件,文件的命名和位置都必须按照规定来,文件放在src目录下,文件名为hibernate.cfg.xml

 

    第二步: 导入约束文件

    第三步: 配置信息

 

6、书写测试代码dao层代码


Hibernate配置详解


 
设置hibernate执行sql语句的时候,自动显示在控制台上

 
 
 
 
 
 
<!--主键生成策略-->
<!--代理主键和自然主键
    主键生成策略:
        identity 是由于数据库自己维护 自动上涨
        increment 是由于数据库自己维护 查找最大的id 然后在之后的位置上插入
        hilo(了解)
        native(我们用的 代表上面三个)
        uuid(java api的生成策略)
        assigned(自然主键)
-->
<generator class="native"></generator>
<!--其他的属性

    这里也可以设置数据库中字段的属性

    type 生成表中的类型

    length 长度

    not-null 不为空

-->

<name="name" column="name"length=""></property>
<!--其他的属性
    这里也可以设置数据库中字段的属性
    type 生成表中的类型
    length 长度
    not-null 不为空
-->
<property name="name" column="name"length=""></property>

Hibernate crud

Saveupdate get delete

这四个方法不能单纯的理解为添加修改 查找 删除

 

实际是修改hibernate中的对象状态

 

在hibernate中对象有三种状态

1、瞬时状态 一个实体对象 没有id 也没有和session绑定

2、游离状态                         有id 没有和session绑定

3、持久状态                          有id 也有和session绑定

 

实际上session的四个方法,就是在改变实体对象在hibernate中的对象状态

 

持久化对象的特点:任何对象的变化都会自动同步到数据库中。

Hibernate提供了一个saveOrUpdate的方法,这个方法自动识别对象的状态,

实际开发中不去思考对象的实际状态,直接调用该方法。

Hibernate查询方式

 

1 HQL

 

基础查询

条件查询:建议使用字符串的占位符方式

分页查询:setFirstResult第几个开始setMaxResults查找几个

 

最大的特点是封装了sql语句,在查找时用的是类名和类的属性名。

2 certeria

这种语法连hql语句都不用写,在查询的时候全部调用他封装好的方法。

And()并且

or() 或者 equal() 等于 notEqual 不等于 like() 模糊查询 isnull() 为空 in():等于列表中的某一个值(特别注意,使用特别) gt(): 大于 ge(): 大于等于 lt(): 小于 le(): 小于等于

between()

count():统计数量

3 sql

NativeQuery


 

 

 

 



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值