zoukankan      html  css  js  c++  java
  • hibernate主要接口和类(笔记)

    hibernate的核心类和接口

    Configuration 类

    它的用处是:

    1.      读取hibernate.cfg.xml

    2.      管理对象关系映射文件 <mapping resource=””>

    3.      加载hibernate 的驱动,url ,用户..

    4.      管理hibernate配置信息

    SessionFactory 接口(会话工厂)

    1.      可以缓存sql语句和数据(称为session级缓存)!!

    2.      是一个重量级的类,因此我们需要保证一个数据库,有一个SessionFactroy

    session接口

    它的主要功能和作用是:

    1.        Session一个实例代表与数据库的一次操作(当然一次操作可以是crud组合)

    2.        Session实例通过SessionFactory获取,用完需要关闭。

    3.        Session是线程不同步的(不安全),因此要保证在同一线程中使用,可以用getCurrentSessiong()。

    4.        Session可以看做是持久化管理器,它是与持久化操作相关的接口

    query接口

    通过query接口我们可以完成更加复杂的查询任务.

       Sessionsession=HibernateUtil.getCurrentSession();

                  Transaction ts=null;

                  try {

                         ts=session.beginTransaction();

                         //获取query引用[这里 Employee不是表.而是domain类名]

                         //[where 后面的条件可以是类的属性名,也可以是表的字段,安照hibernate规定,我们还是应该使用类的属性名.]

                         Queryquery=session.createQuery("from Employee where namehsp='shunping'");

                         //通过list方法获取结果,这个list会自动的将封装成对应的domain对象

                         //所以我们jdbc进行二次封装的工作没有.

                         List<Employee>list=query.list();

                         for(Employee e: list){

                                System.out.println(e.getAaaid()+""+e.getHiredate());

                         }

                         ts.commit();

                  } catch (Exception e) {

                         if(ts!=null){

                                ts.rollback();

                         }

                         throw newRuntimeException(e.getMessage());

                  }finally{

                         //关闭session

                         if(session!=null&&session.isOpen()){

                                session.close();

                         }

     criteria 接口

    Sessionsession=HibernateUtil.getCurrentSession();

                  Transaction ts=null;

                  try {

                         ts=session.beginTransaction(

                         Criteriacri=session.createCriteria(Employee.class).

                         setMaxResults(2).addOrder(Order.desc("id"));

                         List<Employee>list=cri.list();

                         for(Employee e: list){

                                System.out.println(e.getAaaid());

                         }

                         ts.commit();

                  } catch (Exception e) {

                         if(ts!=null){

                                ts.rollback();

                         }

                         throw newRuntimeException(e.getMessage());

                  }finally{

                         //关闭session

                         if(session!=null&&session.isOpen()){

                                session.close();

                         }      

                  }

  • 相关阅读:
    团队-科学计算器-模块测试过程
    结对-贪吃蛇-最终程序
    课后作业-阅读任务-阅读提问-3
    结对-贪吃蛇游戏-测试过程
    《团队-科学计算器-团队一阶段互评》
    结对-贪吃蛇项目-结对项目总结
    团队-科学计算器-开发文档
    《团队-科学计算器-模块测试过程》
    《团队-科学计算器-模块开发过程》
    结对-贪吃蛇-最终程序
  • 原文地址:https://www.cnblogs.com/jggz/p/2954859.html
Copyright © 2011-2022 走看看