HQL查询语句用法@Query

1.       HQL查简单询语句用法Query

//如果查找具体的一个或两个数据(不是全部数据)就要在HQL语句中加SELECT如果是全部查询就省略了直接FROM开头

SQL语句一样

hql =" FROM Person  p WHERE p.age/3 =10  "

hql =" FROM Person  p WHERE( p.age>10) and(p.name =’lxh’)   "

hql =" FROM Person  p WHERE p.name is not null  "

hql =" FROM Person  p WHERE p.age between 20 and  30   "

hql =" FROM Person  p WHERE p.name in (‘lch’,’ldf’)  "

hql =" FROM Person  p WHERE( p.age>10) and(p.name =’lxh’)   "

hql =" FROM Person  p WHERE p.name like  ‘l%’  "

排列

hql =" FROM Person  p order by p.age   "

hql =" FROM Person  p order by p.age desc  "降序排列

hql =" FROM Person  p order by p.age desc p.name  "先按降序再按升序排列

 

分组

hql =" SELECT p.sex,avg(p.age)  FROM Person  p group by p.sex  "

hql =" SELECT p.sex,avg(p.age)  FROM Person  p group by p.sex having avg(p.age) >20  "

 

更新 ,删除

Update User set name =’lxh’ where  name =’lll’

hql =" Delete Person WHERE name = ‘lxh’ "

hql =" FROM Person  p WHERE p.name like  ‘l%’  "

hql =" FROM Person  p WHERE p.name like  ‘l%’  "

分页输出

 

Java代码   收藏代码
  1. //分页输出(从输出数据中找中间一个区间的一段输出)  
  2.        Configuration conf = new Configuration().configure();  
  3.        SessionFactory factory = conf.buildSessionFactory();  
  4.        Session session = factory.openSession();  
  5.         Person u = null;  
  6.          
  7.        //通过Query接口全部查询  
  8.        List ll =null;  
  9.        String hql2 ="FROM Person as p";  
  10.        Query qq = session.createQuery(hql2);  
  11.          
  12.        qq.setFirstResult(0);//从第一条数据开始  
  13.        qq.setMaxResults(2); //输出两条数据  
  14.          
  15.          
  16.        ll = qq.list();  
  17.          
  18.        //固定模式输出  
  19.        Iterator iter1 =ll.iterator();  
  20.        while(iter1.hasNext()){  
  21.              
  22.            u = (Person)iter1.next();  
  23.            System.out.println(u.getName());  
  24.    
  25.   
  26.    
  27.   
  28.    
  29.   
  30. 例子  
  31.    
  32.   
  33.        Session session = new Configuration().configure().buildSessionFactory().openSession();  
  34.        Criteria cri = session.createCriteria(Person.class);  
  35.          
  36.        //String hql ="SELECT distinct p.sex FROM Person AS p  ";  
  37.        String hql ="SELECT COUNT(p.id) FROM Person AS p  ";//求记录数  
  38.        Query q =session.createQuery(hql);  
  39.          
  40.        List all = q.list();  
  41.        Iterator iter = all.iterator();  
  42.        while(iter.hasNext()){  
  43.              
  44.            System.out.println(iter.next());  
  45.    
  46.   
  47.    
  48.   
  49.    
  50.   
  51. Configuration conf = new Configuration().configure();  
  52.        SessionFactory factory = conf.buildSessionFactory();  
  53.        Session session = factory.openSession();  
  54.         User u = null;  
  55.              
  56.        //通过Query接口查询单个数据  
  57.        List l = null;  
  58.        String hql ="FROM User as p WHERE p.id = ?";//必须是User类名,而不是USERS表名,因为查找的是对象,而不是表,对象就对应着表  
  59.        Query q =  session.createQuery(hql);  
  60.          
  61.        q.setString(0,"111");  
  62.         l = q.list();//q.list();查询语句  
  63.            
  64.         //固定模式输出  
  65.         Iterator iter =l.iterator();  
  66.        if(iter.hasNext()){  
  67.          u = (User)iter.next();  
  68.        }  
  69.        System.out.println(u.getName());//查询操作  
  70.           
  71.          
  72.       
  73.        //通过Query接口全部查询  
  74.        List ll =null;  
  75.        String hql2 ="FROM User as p";  
  76.        Query qq = session.createQuery(hql2);  
  77.        ll = qq.list();  
  78.          
  79.        //固定模式输出  
  80.        Iterator iter1 =ll.iterator();  
  81.        while(iter1.hasNext()){  
  82.              
  83.            u = (User)iter1.next();  
  84.            System.out.println(u.getName());  
  85.        }  
  86.          
  87.         //模糊查询  
  88.        List lll =null;  
  89.        String hql3 = "FROM User as p WHERE p.name LIKE ?";  
  90.        Query qqq = session.createQuery(hql3);  
  91.        qqq.setString(0"%"+"c"+"%");  
  92.         lll=    qqq.list();  
  93.         //固定模式输出  
  94.         Iterator iter2 =lll.iterator();  
  95.        if(iter2.hasNext()){  
  96.          u = (User)iter2.next();  
  97.        }  
  98.        System.out.println(u.getName());//查询操作  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值