hibernate 查询HQL小结 +DAO层参数绑定(即?写法) + 分页查询

这篇博客总结了使用Hibernate进行HQL查询的基本操作,包括查询所有数据、更新记录、选择特定字段、构造对象以及参数绑定。同时,也介绍了如何在HQL中使用?符号进行参数绑定,并提供了分页查询的示例。
摘要由CSDN通过智能技术生成
一.回顾基本的SQL查询
   select/update/delect ... from ... where ...group by... having ...order by... asc/desc
   insert into ... value ...
   update ... set ...
   1.单表查询 select * from xx;
   2.多表查询 A a1,a2 B b1,b2
      1)内关联
          a)相等 
          from A a inner join B b on a.a1 <> b.b1   //a1,b1为字段名,a、b为表的别名
          b)不相等
          from A a inner join B b on a.a1 = b.b1
      2)外关联
          a)左外
          from A a outer left join B b on a.a1 = b.b1;
          b)右外
          from A a outer right join B b on a.a1 = b.b1;
          c)全关联
          from A a full join B b on a.a1=b.b1;
      3)笛卡尔乘积
          from A a cross join B b;
    3.嵌套查询
 
二.HQL和SQL的对比
 
不同:                        HQL                              SQL
    1)              HQL中少了select关键字
    2)from后跟:         实体类名                           表名 
    3)查询条件:          字段名                   查询条件:实体类的属性名
    4)大小写:      区分(类名,属性名)               不区分(表名,字段名)
  
相同:                     查询的关键字都不区分大小写
 
其他:
  hql语句和sql语句的语法以及子句的意义都是一样的
  sql面向表和字段进行查询        关键字、表、字段不区分大小写   结果是记录集合
  hql面向对象和属性进行查询      关键字不区分大小写,对象和属性区分大小写  对象的集合
  有问号占位符(序号是从0开始)(setXXX(序号,值))
  可以用 :别名 的方式
  setXXX("别名",值)
  Hibernate支持分页
  Query.setFirstResult(当前页的第一条记录位置)
  Query.setMaxResult(每页的记录数)
  Query.list执行hql语句,返回List结果集(实体对象,Object[])
 
  投影查询出的结果,是什么数据结构?(二维的Object数组)
 
三.hql语句小结
 
注意: 从Hibernate框架中获取session对象的方式有哪些?
   只有:SessionFacotry.openSession()  因为HibernateSessionFactory.getSession  是MyEclipse做的

1.实体查询:

  1.  //查询出User实体对象所对应的所有数据,而且将数据封装成User实体对象,并放入list集合中
  2.     Session session = HibernateSessionFactory.getSession();
  3.     String sql = "from User";
  4.     List list = session.createQuery(hql).list();
2.实体的更新与删除
  1.      Session session = HibernateSessionFactory.getSession();
  2.      Transaction trans = session.beginTransaction();
  3.     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值