//案例2:选择查询@Testpublicvoidtest2(){
Session session = HibernateUtils.openSession();//查询客户带条件//Query query = session.createQuery("from Customer where id = 1");
Query query = session.createQuery("from Customer where id = ? ");//起别名//Query query1 = session.createQuery("from Customer c where c.id = ? ");
Query query1 = session.createQuery("select c from Customer c where c.id = ? ");//设置参数从0开始
query.setParameter(0,1);
query1.setParameter(0,2);//查询后的结果会封装到一个list集合中
List<Customer> list = query.list();//遍历for(Customer customer : list){
System.out.println(customer.getCustomerId()+":"+customer.getCustomerName());}//只获取一条记录
Customer customer1 =(Customer) query1.uniqueResult();
System.out.println(customer1.getCustomerId()+":"+customer1.getCustomerName());
session.close();}
1.4 案例3:投影查询
//案例3:投影查询1@Testpublicvoidtest3(){
Session session = HibernateUtils.openSession();//指定查询字段
Query query = session.createQuery("select c.id,c.customerName from Customer c ");//这种查询出来的结果是一个数组类型的集合
List<Object[]> list = query.list();//遍历集合,集合中的每一个元素是一个数组for(Object[] objects : list){
for(Object object : objects){
System.out.println(object);}
System.out.println("------------");}
session.close();}
//案例3:投影查询2@Testpublicvoidtest4(){
Session session = HibernateUtils.openSession();//指定查询字段,封装到集合对象中,但是Customer必须要提供对应的构造方法
Query query = session.createQuery("select new Customer(c.id,c.customerName) from Customer c ");//这种查询出来的结果是Customer集合
List<Customer> list = query.list();//遍历for(Customer customer : list){
System.out.println(customer);}
session.close();}
1.5 案例4:排序
//案例4:排序@Testpublicvoidtest5(){
Session session = HibernateUtils.openSession();//asc升序 desc降序
List<Customer> list = session.createQuery("from Customer c order by c.id desc ").list();//需要Customer提供对应的构造方法,否则报错//List<Customer> list = session.createQuery("select new Customer(c.id,c.customerName) from Customer c order by c.id desc ").list();//遍历for(Customer customer : list){
System.out.println(customer