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;  
         } 

  • 相关阅读:
    ElasticSearch——分页查询
    Canal——写入到ES中数据错乱
    HBase管理与监控——WebUI
    '$.browser.msie' 为空或不是对象
    input file 获取不到Request.Files 解决办法
    .NET读取服务器或本地文件
    .NET将服务器文件导出
    .Net 中HashTable,HashMap 和 Dictionary<key,value> 和List<T>和DataTable的比较
    JavaScript跨域调用基于JSON的RESTful API
    WCF项目问题2-无法激活服务,因为它需要 ASP.NET 兼容性。没有未此应用程序启用 ASP.NET 兼容性。请在 web.config 中启用 ASP.NET 兼容性,或将 AspNetCompatibilityRequirementsAttribute.AspNetCompatibilityRequirementsMode 属性设置为 Required 以外的值。
  • 原文地址:https://www.cnblogs.com/itcui/p/5749382.html
Copyright © 2011-2022 走看看