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. WPF装饰器

    装饰器定义: 装饰器是一种特殊类型的 FrameworkElement,用于向用户提供可视化提示. 对于其他用户,装饰器可用于将功能控点添加到元素中或提供有关控件的状态信息. 装饰器可以在不改变原有的 ...

  2. Iptables之recent模块小结

    Iptables的recent模块用于限制一段时间内的连接数, 是谨防大量请求攻击的必杀绝技! 善加利用该模块可充分保证服务器安全. recent常用参数--name      设定列表名称,即设置跟 ...

  3. Python模块:time模块详解(转)

    在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. 在开始之前,首先要说明这几点: ...

  4. c语言-遍历pci设备(2)mmio访问

    前言 今天其实我在公司也没有做什么,但是昨天就把pcie遍历的mmio形式做了出来,赞扬公司的台湾服务器,至少我可以使用google来去搜索我想要的资料和答案,有一位大神在台湾的论坛上发布了一片博文, ...

  5. 递推、数位DP解析(以HDU 2089 和 HDU 3555 为例)

    HDU 2089 不要62 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2089 Problem Description 杭州人称那些傻乎乎粘嗒嗒的人 ...

  6. 深入出不来nodejs源码-从fs.stat方法来看node架构

    node的源码分析还挺多的,不过像我这样愣头完全平铺源码做解析的貌似还没有,所以开个先例,从一个API来了解node的调用链. 首先上一张整体的图,网上翻到的,自己懒得画: 这里的层次结构十分的清晰, ...

  7. c#中Socket网络通信的入门

    请访问 http://balabiu.com/?p=16 后续本文更新将在这里: 将设计服务器端异步接受客户端连接和客户端消息.

  8. VS2010 的 HTML 5验证

    前言 VS2010的HTML验证中,没有我们的HTML 5,网上我看到使用vs2010 sp1补丁的方法,但是我的安装不了,后来发现下面的方法,让你的vs2010具有html5的验证功能. 下载这个文 ...

  9. 【ibatis】IBatis返回map类型数据

    有时侯不想创建javabean,或者污染现有的javaBean对象,就需要返回Map类型的数据对象: 1)最简单的方法就是将查询到的字段,使用""进行引起来,这样就可以返回map类 ...

  10. java 跨域-利用jsonp

    Tomcat在 7.0.73, 8.0.39, 8.5.7 版本之前的可以用,不然后台报错 /** * 前端首页跳转后台 */ @RequestMapping("WebIndex.get&q ...