zoukankan      html  css  js  c++  java
  • Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题

    HQL 是Hibernate Query Language的简写,即 hibernate 查询语言:HQL采用面向对象的查询方式。HQL查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询 方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装。
     
    在HQL中,你可以直接From你的实体对象来进行查询:
    Java代码 
    /**
     * 简单使用
     */ 
    @SuppressWarnings("unchecked") 
    public static void test1(){ 
        Session session = HibernateSessionFactory.currentSession(); 
        String hql = "from User u"; 
        Query query = session.createQuery(hql); 
        List<User> user = query.list(); 
        System.out.println("------------SQL执行完毕---------------"); 
        for (User us : user) { 
            System.out.println(us.getName()); 
        } 

     
    类的后面可以接别名
     
    如果想单独查询某一列,可以这样使用:
    Java代码 
    /**
     * 查询某列
     */ 
    @SuppressWarnings("unchecked") 
    public static void test2(){ 
        Session session = HibernateSessionFactory.currentSession(); 
        String hql = "select name from User u"; 
        Query query = session.createQuery(hql); 
        List<String> user = query.list(); 
        System.out.println("------------SQL执行完毕---------------"); 
        for (String us : user) { 
            System.out.println(us); 
        } 

     
    如果想查询某几列的话,只是返回的内容不同了而已:
    Java代码 
    /**
     * 查询某几列
     */ 
    @SuppressWarnings("unchecked") 
    public static void test3(){ 
        Session session = HibernateSessionFactory.currentSession(); 
        String hql = "select id,name from User u"; 
        Query query = session.createQuery(hql); 
        List user = query.list(); 
        System.out.println("------------SQL执行完毕---------------"); 
        for(Object obj : user){ 
            Object[] arrObj = (Object[])obj; 
            System.out.println(arrObj[0] + "/t-->/t" + arrObj[1]); 
        } 

    Java代码 
    /**
     * 查询一条数据
     */ 
    @SuppressWarnings("unchecked") 
    public static void test3(){ 
        Session session = HibernateSessionFactory.currentSession(); 
        String hql = " from User u"; 

      List list=session.createQuery(hql).setString(0, id).list(); 

      //User user =(User) query.uniqueResult(); //当确定返回的实例只有一个或者null时 用uniqueResult()方法

      if (list.size()==1){  
             return (User)list.get(0);  
         }else{  
             return null;  
         } 

  • 相关阅读:
    索引唯一性扫描(INDEX UNIQUE SCAN)
    索引范围扫描(INDEX RANGE SCAN)
    算法设计与分析——回溯法算法模板
    操作系统考试复习大纲
    windows cmd 生成文件目录树
    Java 匿名类和lambda表达式
    下载Abook 高等教育出版社网站资料
    操作系统——银行家算法(Banker's Algorithm)
    算法设计与分析——最大团问题(回溯法)
    JVM内存区域
  • 原文地址:https://www.cnblogs.com/itcui/p/5749382.html
Copyright © 2011-2022 走看看