Hibernate05

hql语句
hibernate query language 操作的是实体类(对象)

①查询所有(持久态数据)
String hql=“select a from Author a”; //hql语句没有“*” 只有实体类的别名(自己取)
Query query=session.createQuery(hql);
List list=query.list();

②查询某些字段(非持久态数据)
Query query=session.createQuery(“select a.aid,a.aname from Author a”);
List<Object[]> list=query.list();
//返回的是两个object不在session的管理范围

③查询对象 (持久态)
Query query=session.createQuery(“select new Author(a.aid,a.aname) from Author a”);
List list=query.list();
//返回的是一个Author对象集合

④批量修改
Query query=session.createQuery("update Author a set a.name=“hhh”);
int i=query.executeUpdate();
//返回受影响行数

⑤批量删除
Query query=session.createQuery("delete from Author a where a.name like ‘%h%’ ");
int i=query.executeUpdate();
//返回受影响行数
函数的使用------------------------------------------------------------------------------------------------

max()
Query query=session.createQuery(“select max(b.bid) from Book b”);
int max=(Integer)query.uniqueResult();
//uniqueResult:唯一的结果
//返回int类型的最大数,也有可能是long类型的数,报错就用long。
count()
Query query=session.createQuery(“select count(b.bid) from Book b”);
Long count=(Long)query.uniqueResult();
…(略)
占位符的使用----------------------------------------------------------------------------------------------

⑧占位符"?"的使用
Query query=session.createQuery(“select a from Author a where
a.aname like ? 0 and a.aid>?1”).setParameter(0,"%h%").setParmeter(1,2);

//hibernate 5.3.10的 "?"要加索引从0开始 4.3.11不用

⑨":指定占位符名称"

Query query=session.createQuery(“select a from Author a where
a.aname like :aname and a.aid>:aid”)
.setParameter(“aname”,"%h%")
.setParameter(“aid”,2);
⑩集合的方式
List list=new ArrayList();
list.add(5);
list.add(6);
Query query=session.createQuery(“delete from Author a where a.aid in:ids”)
.setParameter(“ids”,list);
int i=query.executeUpdate();

⑾分页查询
int page=1;
int pagesize=5;
//总行数
Long count=(Long)query.uniqueResult();
//最大页数
int max=(Integer)count%pagesize==0?count/pagesize:(count/pagesize)+1;
Query query=session.createQuery(“select b from Book b”)
.setMaxResult(pagesize) //每页行数
.setFirstResult((page-1)*pagesize); //起始行数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值