HQL条件查询

3、条件查询【重要】
* 可以采用拼字符串的方式传递参数
* 可以采用 ?来传递参数(索引从0开始)
* 可以采用 :参数名 来传递参数
* 如果传递多个参数,可以采用setParamterList方法
* 在hql中可以使用数据库的函数,如:date_format
参见:SimpleConditionQueryTest.java
  1. ================================================================
  2. A:
  3. //可以拼字符串
  4. Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.namelike'%1%'").list();
  5. for(Iteratoriter=students.iterator();iter.hasNext();){
  6. Object[]obj=(Object[])iter.next();
  7. System.out.println(obj[0]+","+obj[1]);
  8. }
  9. =============================================================
  10. B.
  11. Queryquery=session.createQuery("selects.id,s.namefromStudentswheres.namelike?");
  12. //query.setParameter(0,"%1%");
  13. //Liststudents=query.list();
  14. //可以使用?方式传递参数
  15. //参数的索引从0开始
  16. //传递的参数值,不用单引号引起来
  17. //注意方法链编程
  18. Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.namelike?")
  19. .setParameter(0,"%1%")
  20. .list();
  21. =============================================================
  22. C
  23. //使用:参数名称的方式传递参数值
  24. Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.namelike:myname")
  25. .setParameter("myname","%1%")
  26. .list();
  27. for(Iteratoriter=students.iterator();iter.hasNext();){
  28. Object[]obj=(Object[])iter.next();
  29. System.out.println(obj[0]+","+obj[1]);
  30. }
  31. ==============================================================
  32. D
  33. //使用:参数名称的方式传递参数值
  34. Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.namelike:mynameands.id=:myid")
  35. .setParameter("myname","%1%")
  36. .setParameter("myid",12)
  37. .list();
  38. ===============================================================
  39. E
  40. //支持in,需要使用setParameterList进行参数传递
  41. Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.idin(:myids)")
  42. .setParameterList("myids",newObject[]{1,2,3,4,5})
  43. .list();
  44. ==================================================================
  45. F
  46. //查询2008年2月创建的学生
  47. Liststudents=session.createQuery("selects.id,s.namefromStudentswheredate_format(s.createTime,'%Y-%m')=?")
  48. .setParameter(0,"2008-02")
  49. .list();
  50. ====================================================================
  51. G
  52. SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");
  53. //查询2008-01-10到2008-02-15创建的学生
  54. Liststudents=session.createQuery("selects.id,s.namefromStudentswheres.createTimebetween?and?")
  55. .setParameter(0,sdf.parse("2008-01-1000:00:00"))
  56. .setParameter(1,sdf.parse("2008-02-1523:59:59"))
  57. .list();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值