为了账号安全,请及时绑定邮箱和手机立即绑定
  • session详解:

    https://img1.sycdn.imooc.com//5d148dc1000108d007280338.jpg

    查看全部
  • hibernate的执行流程

    查看全部
    0 采集 收起 来源:session简介

    2019-06-22

  • Hibernate单表操作CRUD实例

    保存:session的save方法。

    修改:session的update方法。

    删除:session的delete方法。

    查询:session的get/load方法(查询单个记录)。

    session.get(类对象(Student.class),要查询的主键(1))。

    参数中提示的 Class arg0 表示要传入 类对象 arg0 ,Class 表示的是类型是 Class,也就是 类类型。

    get与load的区别

     1、 在不考虑缓存的情况下,get方法会在被调用之后立即向数据库发出sql语句,并返回持久化对象,而load方法会在被调用之后返回一个代理对象,该代理对象只保存了实体对象的id(主键),直到真正使用对象的非主键属性时才会发出sql语句。

     2、 如果要查询的数据不存在,get方法返回null,load方法抛出异常org.hibernate.ObjectNotFoundException


    查看全部
  • <component name="address" class="Address">
       <property name="postname" column="POSTNAME"></property>
        <property name="phone" column="PHONE"></property>
        <property name="address" column="ADDRESS"></property>
     </component>

    组件属性:学生标签有一个 address 属性,address 是 类(class)Address 的实例对象,这个类有三个字段 postcode,phone。address。就把 address 这个属性叫做组件属性。

    查看全部
  • CRUD 增删改查

    创建(Create)、更新(Update)、读取(Retrieve)和删除(Delete)

    查看全部
    0 采集 收起 来源:本章简介

    2019-06-19

  • openSession() 需要手动关闭(session.close())不然一直消耗 connection 资源最后连接溢出

    getCurrentSession() 每次提交事务后会自动关闭 session,也就释放了 connection 资源,每次连接的 connection 都是同一个 connection 对象,connection 对象的 hashCode 相同

    查看全部
  • Hibernate 对数据的操作都是封装在 事务 中的,并且默认是非自动提交方式,所以用 session 保存对象时,如果不开启事务,并且手工提交事务,对象并不会真正保存在数据库中。

    开启事务是通过 session.openTransaction() 实现的,事物的提交是 transaction.commit() 实现的 

    查看全部
    0 采集 收起 来源:transaction简介

    2019-06-19

  • 执行 session 的某个方法时,要先开启一个事务,也就是这些方法封装在事务中,执行完方法后,要先提交事务,再关闭 session 。

    session与connection,是多对一的关系,每个session都有一个与之对应的connection,一个connection不同时刻可以供多个session使用

    查看全部
    0 采集 收起 来源:session简介

    2019-06-19

  • 通过Hibernate API编写访问数据库的代码

    1.开启事务

    1
    12345678910//创建配置对象 Configuration config = new Configuration().configure(); //创建服务注册对象 ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry(); //创建会话工厂对象 sessionFactory = config.buildSessionFactory(serviceRegistry); //会话对象 session = sessionFactory.openSession(); //开启事务 transaction = session.beginTransaction();

    2.执行CRUD操作

    12Student s = new Student(1,"张三丰","男",new Date(),"武当山");     session.save(s);

    3.提交事务,关闭相应的资源

    123transaction.commit();//提交事务     session.close();//关闭会话      sessionFactory.close();//关闭会话工厂


    查看全部
  • hibernate总结

    查看全部
  • hjibernate单一主键

    查看全部
  • Hibernate单表操作CRUD实例

    保存:session的save方法。

    修改:session的update方法。

    删除:session的delete方法。

    查询:session的get/load方法(查询单个记录)。

    session.get(类对象(Student.class),要查询的主键(1))。

    session.load(类对象(Student.class),要查询的主键(1))。

    get和load的区别:

    第一个区别:在不考虑缓存的情况下,get方法会在调用之后立即向数据库发出sql语句(不管是否使用该对象,它都会立刻发出sql语句)。直到使用对象的非主键属性时才会发出sql语句。

    第二个区别:get方法会在调用之后立即返回持久化对象。load方法会在调用后返回一个代理对象,该代理对象只保存了实体对象的主键Id。

    获得类对象的名字:(反射机制)s.getClass().getName()。

    第三个区别:查询数据库不存在的数据时,get方法返回null,load方法抛出异常org.hibernate.ObjectNotFoundException。



    查看全部
  • session没有关闭

    https://img1.sycdn.imooc.com//5ccbbbf2000145a908370742.jpg

    session关闭

    https://img1.sycdn.imooc.com//5ccbbc630001d44f07320577.jpg

    查看全部
  • hibernate开发基本步骤

    查看全部
  • get与load的区别

     1、 在不考虑缓存的情况下,get方法会在被调用之后立即向数据库发出sql语句,并返回持久化对象,而load方法会在被调用之后返回一个代理对象,该代理对象只保存了实体对象的id(主键),直到真正使用对象的非主键属性时才会发出sql语句。

     2、 如果要查询的数据不存在,get方法返回nullload方法抛出异常org.hibernate.ObjectNotFoundException

    查看全部

举报

0/150
提交
取消
课程须知
小伙伴们,学习本门课程前需要具备Java基础知识和面向对象编程思想,并能够熟练使用JDBC操作Mysql数据库。
老师告诉你能学到什么?
1、理解ORM模型 2、掌握Hibernate基本概念 3、能够熟练创建Hibernate实例

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!