使用Hibernate框架之前需要注意的点

  1. 实体类
    ①属性私有
    ②set&get
    ③唯一的id值(唯一标识这个实体类对象,对应数据表中的主键)
    ④属性使用基本数据类型的包装类来修饰(原因:包装类可以值为null)
    【例:你考试得了0分,0有两种含义,一是你真的得了零分;二是你没参加考试,所以为了避免歧义,使用包装类】
    【补:int–>Integer、char–>Character、double–>Double…】

  2. HIbernate 主键生成策略
    之前在 Hibernate 环境搭建 那篇文章中的 client.hbm.xml 文件也就是实体类映射文件中
    在这里插入图片描述
    这里就是配置主键生成策略的地方。
    class 的值有多个:
    在这里插入图片描述

  3. CRUD操作

save、get(根据id查询)、update、delete

//添加功能
        Client client = new Client();
        client.setcName("小赵");
        client.setcTelNum("789789");
        client.setcAddress("上海");
        //调用session的save方法实现添加
        session.save(client);
        
//根据id查询,调用session的get方法,返回实体类对象,第二个是id的值
        Client client = session.get(Client.class, 2);
        System.out.println(client);

//修改操作,先根据id查到要修改的记录,再修改具体的字段
        //比如:修改 id为 3 的 name 为 李雷
        Client client = session.get(Client.class, 3);
        client.setcName("李雷");
        session.update(client);

/*删除操作,根据id查到数据,调用delete方法删除
        * 比如删除id为2的数据*/
        Client client = session.get(Client.class, 2);
        session.delete(client);
  • 实体类的三种状态
  • 瞬时态:对象里面没有id值,对象与session没有关联
    见调用save方法之前的实体类对象
  • 持久态:对象里面有id值,对象与session关联
    见调用get之后的实体类对象
  • 托管态:对象有id值,对象与session没有关联
    比如:自己实例化实体类对象,设置一个id值
  1. saveOrUpdate方法
//瞬时态,做的是添加操作
        Client client = new Client();
        client.setcName("lucy");
        client.setcTelNum("123123");
        client.setcAddress("澳大利亚");
        session.saveOrUpdate(client);
        
//持久态。修改操作
        Client client = session.get(Client.class, 7);
        client.setcName("薇薇安");
        client.setcAddress("美国");
        session.saveOrUpdate(client);
        
//托管态,做的是修改操作
        Client client = new Client();
        client.setCid(7);
        client.setcTelNum("999999");
        session.saveOrUpdate(client);
  1. Hibernate一级缓存
  • hibernate的一级缓存默认打开的
  • hibernate的一级缓存使用范围,是session范围,从session创建到session关闭范围
  • hibernate的一级缓存中,存储数据必须 持久态数据(显然,只有持久态与session有关)

持久态会自动更新数据库,这样更新操作就不用写update也可以实现更新数据库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值