Hibernate数据操作(三)之HQL语句

本文详细介绍了Hibernate中的HQL语句,包括Form、select、where子句的使用,以及表达式如lower()和order by子句的示例。通过不同示例展示了如何进行数据查询,并强调了注意点,如大小写敏感性和效率问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,Form 语句

示例:

		HibernateUtil.hibernateUtil.path="Hibernate-config/hibernate.cfg.xml";
		session=HibernateUtil.hibernateUtil.getCurrentSession();
		transaction=session.beginTransaction();
		String hql="from User";
		Query query=session.createQuery(hql);
		for (Object u : query.list()) {
			System.out.println((User)u);
		}
		transaction.commit();

测试结果:

关键代码:

String hql="from cn.jbit.pojo.User"全限定名简化为String hql="from User";

关键字大小写没有严格规定像“FROM User”="from User"是相等的,但“User”不等于“user”。

起别名:String hql="from User as user"或者String hql="from User user"。

另一种打印结果集的方式:

String hql="from User";
		Query query=session.createQuery(hql);
		Iterator<User> iterator= query.iterate();
		while(iterator.hasNext()){
			User u=iterator.next();
			System.out.println(u);
		}

不推荐这种方式,访问数据库次数太多了。每一个iteration.next()都会访问一次数据库影响效率。

二,select语句

关键代码

	String hql="select user.name from User as user";
		Query query=session.createQuery(hql);

测试结果:

三,where 子句

关键代码:

String hql="select user from User as user where user.name='张武'";
		Query query=session.createQuery(hql);

测试:

四,使用表达式:

	String hql="select user from User as user where lower(user.pwd)='ABC'";
		Query query=session.createQuery(hql);

lower()忽略大小写

测试:

五,order by子句

关键代码:

		String hql="select user from User as user order by user.id asc";
		Query query=session.createQuery(hql);

测试:

 

关键代码:

		String hql="select user from User as user order by user.id desc";
		Query query=session.createQuery(hql);

测试:

关键代码:

	String hql="select user from User as user order by user.name asc,user.id desc";
		Query query=session.createQuery(hql);

测试:

三个实例分别式:asc(顺序id),desc(倒序id),先按name顺序(asc),再按id倒序(desc)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值