hibernate中HQL语句

6 篇文章 0 订阅
1 篇文章 0 订阅
package test;

import entity.Commodity;
import entity.Customer;
import entity.Seller;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import util.HibernateUtil;

import java.util.List;
import java.util.Map;

/**
 * Created by raid on 2016/5/15.
 */
public class SellerLogic {

    private Session session = null;
    private Transaction transaction = null;

    public SellerLogic() {
        session = HibernateUtil.getSession();
        transaction = session.beginTransaction();
    }

    /**
     * 查询所有
     */
    public void testSeller() {
        String hql = " from Seller";
        Query query = session.createQuery(hql);
        List<Seller> sellers = query.list();
        for (Seller seller : sellers) {
            System.out.println(seller);
        }
        transaction.commit();
    }

    /**
     * 使用别名
     */
    public void testSelectClauseObjectArray() {
        String hql = " select s.name,s.tel,s.address,s.star from Seller s ";

        Query query = session.createQuery(hql);
        List<Object[]> list = query.list();
        for (Object[] objs : list) {
            System.out.println("name:" + objs[0]);
            System.out.println("tel:" + objs[1]);
            System.out.println("address:" + objs[2]);
            System.out.println("star:" + objs[3]);
        }
    }

    /**
     * 查询记录使用List来包装
     */
    public void testSelectClauseList() {
        String hql = "select new list(s.name,s.tel,s.address) from Seller s ";
        Query query = session.createQuery(hql);
        List<List> lists = query.list();
        for (List list : lists) {
            System.out.println("name : " + list.get(0));
            System.out.println("tel : " + list.get(1));
            System.out.println("address : " + list.get(2));
        }
        transaction.commit();
    }

    /**
     * 查询记录使用map来表示
     */
    public void testSelectClauseMap() {
        String hql = "select new map(s.name as name,s.tel as tel,s.address as address) from Seller s ";
        Query query = session.createQuery(hql);
        List<Map<String, Object>> maps = query.list();
        for (Map<String, Object> map : maps) {
            System.out.println("name:" + map.get("name"));
            System.out.println("tel:" + map.get("tel"));
            System.out.println("address:" + map.get("address"));
        }
    }

    /**
     * 查询记录使用本身对象来表示,这里要注意的是对象必须有这样的构造方法
     */
    public void testSelectClauseSelf() {
        String hql = "select new Seller(s.name,s.tel,s.address) from Seller s ";
        Query query = session.createQuery(hql);
        List<Seller> sellers = query.list();
        for (Seller seller : sellers) {
            System.out.println("name:" + seller.getName());
            System.out.println("tel:" + seller.getTel());
            System.out.println("address:" + seller.getAddress());
        }

    }

    /**
     * 查询独一无二
     */
    public void testDistinct() {
        String hql = "select distinct c.sex from Customer c";
        Query query = session.createQuery(hql);
        List<Object> list = query.list();
        for (Object obj : list) {
            System.out.println(obj);
        }
    }

    /**
     * 条件查询
     */
    public void testWhere1() {
        String hql = " from Commodity c where c.price>400";
        Query query = session.createQuery(hql);
        List<Commodity> commodities = query.list();
        for (Commodity c : commodities) {
            System.out.println("name:" + c.getName());
            System.out.println("price:" + c.getPrice());
        }
    }

    /**
     * 条件查询
     */
    public void testWhere2() {
        String hql = " from Commodity c where c.description <> null "; //<> 为不是null,如果是is那么就是null
        Query query = session.createQuery(hql);
        List<Commodity> commodities = query.list();
        for (Commodity c : commodities) {
            System.out.println("name:" + c.getName());
            System.out.println("description:" + c.getDescription());
        }
    }

    public void testWhere3() {
        String hql = " from Customer c where c.age not in(20,40)"; //in表示在范围内,not in表示不在范围内
        Query query = session.createQuery(hql);
        List<Customer> customers = query.list();
        for (Customer customer : customers) {
            System.out.println("name:" + customer.getName());
            System.out.println("age:" + customer.getAge());
        }
    }

    /**
     * 条件查询
     */
    public void testWhere4() {
        String hql = " from Customer c where c.age not between 20 and 40";
        Query query = session.createQuery(hql);
        List<Customer> customers = query.list();
        for (Customer customer : customers) {
            System.out.println("name:" + customer.getName());
            System.out.println("age:" + customer.getAge());
        }
    }

    /**
     * 模糊查询
     */
    public void testWhere5() {
        String hql = " from Customer c where c.name like '张_'";
        Query query = session.createQuery(hql);
        List<Customer> customers = query.list();
        for (Customer customer : customers) {
            System.out.println("name:" + customer.getName());
            System.out.println("age:" + customer.getAge());
        }
    }

    /**
     * 查询一条记录
     */
    public void testWhere6() {
        String hql = " from Customer c where c.name = '张三'";
        Query query = session.createQuery(hql);
        Customer c = (Customer) query.uniqueResult();
        System.out.println(c.getName());
    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值