hql查询是基于对象的查询,不是基于表的查询。

1.hql的简单查询

    @Test
    public void queryUsers() {
        //简单查询
        SessionFactory sf = null;
        Session s = null;
        Transaction t = null;
        try {
            sf = HibernateUtil.getSessionFactory();
            s = sf.getCurrentSession();
            t = s.beginTransaction();
            Query<User> query = s.createQuery("from User");

            List<User> users = query.list();
            for(User user:users){
                System.out.println(user);
            }
            t.commit();
        }catch(Exception e) {
            if(t!=null) {
                t.rollback();
            }
            e.printStackTrace();
        }
    }

其中“from User”是hql语句,User是实体类User类,而不是User表

此实例测试结果

数据库内容

2.属性查询

@Test
    public void queryUsernames() {
        //属性查询
        SessionFactory sf = null;
        Session s = null;
        Transaction t = null;

        try {
            sf = HibernateUtil.getSessionFactory();
            s = sf.getCurrentSession();
            t = s.beginTransaction();
            Query<User> query = s.createQuery("select u.username from User u");
            List usernames = query.list();

            for(Object username:usernames){
                System.out.println(username);
            }
            t.commit();
        }catch(Exception e) {
            if(t!=null) {
                t.rollback();
            }
            e.printStackTrace();
        }
    }

测试结果

3.实例化查询

@Test
    public void queryNewUser() {
        //实例化查询
        SessionFactory sf = null;
        Session s = null;
        Transaction t = null;

        try {
            sf = HibernateUtil.getSessionFactory();
            s = sf.getCurrentSession();
            t = s.beginTransaction();
            Query<User> query = s.createQuery("select new User(u.id,u.username,u.password,u.sex,u.age) from User u");
            List<User> users = query.list();

            for(User user:users){
                System.out.println(user);
            }
            t.commit();
        }catch(Exception e) {
            if(t!=null) {
                t.rollback();
            }
            e.printStackTrace();
        }
    }

对对象进行实例化

测试结果

第五次作业 hql查询的更多相关文章

  1. Hibernate五 HQL查询

    HQL查询一 介绍1.HQL:Hibernate Query Language,是一种完全面向对象的查询语言.使用Hibernate有多重查询方式可供选择:hibernate的HQL查询,也可以使用条 ...

  2. Hibernate--------八大类HQL查询集合

    Hibernate的   八大类HQL查询集合 Hibernate的八大类HQL查询集合: 一:属性查询(SimplePropertyQuery) 1,单一属性查询 *返回结果集属性列表,元素类型和实 ...

  3. Hibernate5.2之HQL查询

    Hibernate5.2之HQL查询                                                                  一. 介绍 Hibernate的 ...

  4. Hibernate学习笔记-Hibernate HQL查询

    Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...

  5. J2EE进阶(十七)Hibernate中常用的HQL查询方法(getHibernateTemplate())

    J2EE进阶(十七)Hibernate中常用的HQL查询方法(getHibernateTemplate())   当我们使用Hibernate进行数据的CRUD操作时,利用模版进行操作不失为一种方法. ...

  6. 17秋 软件工程 团队第五次作业 Alpha 测试报告

    用户反馈博客:17秋 软件工程 团队第五次作业 Alpha 用户反馈 团队项目软件的总体测试计划 测试模块: 用户登录 部门信息模块 活动模块 部员管理模块 短信通知模块 测试计划: 注:测试结果Y代 ...

  7. C#基础第五天-作业答案-用DataTable制作名片集

    .DataTable 实现 DataTable PersonCard = new DataTable(); //创建一个DataTable DataTable PersonCardCopy = new ...

  8. C#基础第五天-作业-用DataTable制作名片集

    1.用DataTable集合去实现名片集.(增加,修改,删除,查询,查询全部)需求:根据人名去(删除/查询).指定列:姓名,年龄,性别,爱好,电话. 本系列教程: C#基础总结之八面向对象知识点总结- ...

  9. Hibernate(九)HQL查询

    一.Hibernate提供的查询方式 OID查询方式:主键查询.通过get()或者load()方法加载指定OID的对象查询结果为一个 HQL查询方式:通过Query接口使用HQL语言进行查询 QBC查 ...

随机推荐

  1. MQ5.3在redhat9上的安装

    一.准备工作 1.安装linux软件包 确保系统中有libgcc_s.so和libstdc++.so.3. 如无意外,libgcc_s.so在redhat中已经存在,存放路径为:/usr/lib/gc ...

  2. C/C++编程GUI库比较

    转自:http://blog.csdn.net/lostown/article/details/658654 最强的GUI库当属Qt,毕竟是商业化的东西,功能最完整,什么都好,包括类似java代码风格 ...

  3. POJ 2349 Arctic Network(最小生成树中第s大的边)

    题目链接:http://poj.org/problem?id=2349 Description The Department of National Defence (DND) wishes to c ...

  4. ASP.NET Repeater控件实现简单分页

    早上,有看MSDN,看到了 PagedDataSource 类 http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.pa ...

  5. ASP.NET编辑与更新数据(非GridView控件实现)

    Insus.NET在实现<ASP.NET开发,从二层至三层,至面向对象 (5)>http://www.cnblogs.com/insus/p/3880606.html 中,没有把数据编辑与 ...

  6. golang中的接口实现(一)

    golang中的接口实现 // 定义一个接口 type People interface { getAge() int // 定义抽象方法1 getName() string // 定义抽象方法2 } ...

  7. Debug模式下,测试app后缀名“-测试”

    target-->buildsetting-->user-defined 新建一个和上图尖括号一样的字符 如下图: 在debug中填入后缀名,然后在debug模式下运行程序,会发现debu ...

  8. Spring加载properties文件的两种方式

    在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可, ...

  9. 使用Hibernate Validator来帮你做数据校验

    数据校验是贯穿所有应用程序层(从表示层到持久层)的常见任务.通常在每个层中实现相同的验证逻辑,这是耗时且容易出错的.这里我们可以使用Hibernate Validator来帮助我处理这项任务.对此,H ...

  10. CentOS总结归纳之基本操作(linux系管与运维一)

    原创作品,转载请在文章明显位置注明出处:https://www.cnblogs.com/sunshine5683/p/10170009.html 使用命令关闭和重启系统: 一.条件:只有root用户才 ...