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%’  "

分页输出

 

//分页输出(从输出数据中找中间一个区间的一段输出)
       Configuration conf = new Configuration().configure();
       SessionFactory factory = conf.buildSessionFactory();
       Session session = factory.openSession();
        Person u = null;
       
       //通过Query接口全部查询
       List ll =null;
       String hql2 ="FROM Person as p";
       Query qq = session.createQuery(hql2);
       
       qq.setFirstResult(0);//从第一条数据开始
       qq.setMaxResults(2); //输出两条数据
       
       
       ll = qq.list();
       
       //固定模式输出
       Iterator iter1 =ll.iterator();
       while(iter1.hasNext()){
           
           u = (Person)iter1.next();
           System.out.println(u.getName());
 

 

 

例子
 

       Session session = new Configuration().configure().buildSessionFactory().openSession();
       Criteria cri = session.createCriteria(Person.class);
       
       //String hql ="SELECT distinct p.sex FROM Person AS p  ";
       String hql ="SELECT COUNT(p.id) FROM Person AS p  ";//求记录数
       Query q =session.createQuery(hql);
       
       List all = q.list();
       Iterator iter = all.iterator();
       while(iter.hasNext()){
           
           System.out.println(iter.next());
 

 

 

Configuration conf = new Configuration().configure();
       SessionFactory factory = conf.buildSessionFactory();
       Session session = factory.openSession();
        User u = null;
           
       //通过Query接口查询单个数据
       List l = null;
       String hql ="FROM User as p WHERE p.id = ?";//必须是User类名,而不是USERS表名,因为查找的是对象,而不是表,对象就对应着表
       Query q =  session.createQuery(hql);
       
       q.setString(0,"111");
        l = q.list();//q.list();查询语句
         
        //固定模式输出
        Iterator iter =l.iterator();
       if(iter.hasNext()){
         u = (User)iter.next();
       }
       System.out.println(u.getName());//查询操作
        
       
    
       //通过Query接口全部查询
       List ll =null;
       String hql2 ="FROM User as p";
       Query qq = session.createQuery(hql2);
       ll = qq.list();
       
       //固定模式输出
       Iterator iter1 =ll.iterator();
       while(iter1.hasNext()){
           
           u = (User)iter1.next();
           System.out.println(u.getName());
       }
       
        //模糊查询
       List lll =null;
       String hql3 = "FROM User as p WHERE p.name LIKE ?";
       Query qqq = session.createQuery(hql3);
       qqq.setString(0, "%"+"c"+"%");
        lll=    qqq.list();
        //固定模式输出
        Iterator iter2 =lll.iterator();
       if(iter2.hasNext()){
         u = (User)iter2.next();
       }
       System.out.println(u.getName());//查询操作

  

 

转载:http://blog.csdn.net/lmllmllmllml0000/article/details/4589794

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值