HQL基础查询语句

1.使用hql语句检索出Student表中的所有列

//核心代码
@Test
public void oneTest()
{
  Query query=session.createQuery("form Student");
  List<Student> list=query.list();
  for(Student item:list)
 {
   System.out.println(item.getName());
 } 

}

2.使用hql语句语句检索出部分列

//核心代码
@Test
public void twoTest()
{
  Query query=session.createQuery("select name from Student");
  List<String> list=query.list();
  for(String item:list)
 {
   System.out.println(item);
 }
}

3.使用hql语句检索出多列

//核心代码
@Test
public void threeTest()
{
  Query query=session.createQuery("select name,age from Student");
  List<Object[]> list=query.list();
  for(Object[] item : list)
 {
   System.out.println(item[0]+"\t"+item[1]);
 }
}

4.投影出多列,有构造植入,返回强类型

//核心代码
@Test
public void fourTest()
{
   Query query=session.createQuery("select Student(id,name,age) from Student");//Student(id,name,age)和实体类带参构造顺序相同
   List<Student> list=query.list();
   for(Student item:list)
  {
     System.out.println(item.getName());
  }
}

5.带条件查询,匿名占位符

//核心代码
@Test
public void fiveTest()
{
  Query query=session.createQuery("select Student from Student where name=?");
  query.setParameter(0,"王小三");
  List<Student> list=query.list();
  for(Student item:list)
 {
   System.out.println(item.getName());
 }
}

6.带条件查询,名称占位符

//核心代码
@Test
    public void SixTest()
    {
        Query query = session.createQuery("select Student from Student where stu.sname=:name");
        query.setParameter("name", "王小四");
        List<Student> list=query.list();
        for (Student item : list) {
            System.out.println(item.getSid());
        }
    }

7.动态查询,需要新建一个工具类,用到几个属性就封装几个属性

public class StudentCondition {
    private String name;
    private Integer age;
    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}
//测试类核心代码
StudentCondition condition=new StudentCondition();
        condition.setAge(25);
        condition.setName(null);
        StringBuilder sb=new StringBuilder();
        sb.append("from Student where 1=1 ");
        Student stu=new Student();
        if(condition.getAge()!=null)
        {
            sb.append(" and sage=:sage");
            stu.setSage(condition.getAge());
        }
        if(condition.getName()!=null)
        {
            sb.append(" and sname=:sname");
            stu.setSname(condition.getName());
        }
        Query query = session.createQuery(sb.toString());
        query.setProperties(stu);
        List<Student> list=query.list();
        for (Student item : list) {
            System.out.println(item.getSname());
        }//投影出年龄25岁的学生信息
    }

8.分页查询数据

@Test
    public void nineTest()
    {
        String sql="from Student";
        Query query = session.createQuery(sql);
        Integer pageIndex=1;
        Integer pageSize=2;
        query.setFirstResult((pageIndex-1)*pageSize);
        query.setMaxResults(pageSize);
        List<Student> list = query.list();

        for (Student student : list) {
            System.out.println(student);
        }

HQL基础查询语句的更多相关文章

  1. SQL Serever学习9——基础查询语句

    SQL语言概述 SQL是结构化查询语言(Structure Query Language),1974年提出,1979年被IBM实现,SQL语言已经成为关系型数据库的标准语言. 包括: DDL数据定义语 ...

  2. hql常用查询语句

    // HQL: Hibernate Query Language.// 特点:// >> 1,与SQL相似,SQL中的语法基本上都可以直接使用.// >> 2,SQL查询的是表 ...

  3. sql基础查询语句

    数据库文件百度云地址:www.pan.baidu.com 脚步:下载博客园文件:select_learn.rar 1.TOP限制返回行数[percent] * from book_info --显示前 ...

  4. PL/SQL第三章 基础查询语句

    --查询所有列 select * from tab_name|view_name; SELECT * FROM emp; SELECT * FROM (SELECT * FROM emp); --查询 ...

  5. oracle 基础查询语句

    select abs(10) from dual; --取绝对值select ceil(3.6) from dual;--向上取整 select power(2,3) from dual;--2的3次 ...

  6. JavaWeb_(Hibernate框架)Hibernate中数据查询语句HQL基本用法

    HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似. 在 Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式. ...

  7. HQL查询语句

    查询语言 Hibernate 查询语言(HQL)是一种面向对象的查询语言,类似于 SQL,但不是去对表和列进行操作,而是面向对象和它们的属性. HQL 查询被 Hibernate 翻译为传统的 SQL ...

  8. 15个初学者必看的基础SQL查询语句

    本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插 ...

  9. [原创]java WEB学习笔记90:Hibernate学习之路-- -HQL检索方式,分页查询,命名查询语句,投影查询,报表查询

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

随机推荐

  1. JavaScript学习笔记-基础语法、类型、变量

    基础语法.类型.变量   非数字值的判断方法:(因为Infinity和NaN他们不等于任何值,包括自身) 1.用x != x ,当x为NaN时才返回true; 2.用isNaN(x) ,当x为NaN或 ...

  2. 获取设备的mac地址可靠的方法

    参考自:http://www.open-open.com/lib/view/open1433406847322.html /** * 获取设备的mac地址 * * @param ac * @param ...

  3. 表达式语言EL

    表达式语言EL 表达式语言 EL(Expression Language,表达式语言)主要是用在JSP页面中,用来辅助我们产生无脚本的JSP页面,此处的脚本指的是JSP中的Java代码. EL的语法是 ...

  4. c++引用总结

    一.变量的引用: 引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样. 引用的声明方法:类型标识符 &引用名=目标变量名:  例:char ch;        cha ...

  5. 学习 MySQL-DBA常用SQL汇总

    创建用户 GRANT USAGE ON *.* TO 'rp'@'%' IDENTIFIED BY 'rp' MAX_UPDATES_PER_HOUR MAX_CONNECTIONS_PER_HOUR ...

  6. redmine 安装

    现在redmine安装部署的方法有很多,有安装包,docker,虚拟机镜像,还可以在ubuntu,centos中添加安装源. 但是最好维护方法还是从源码去部署. 一. 目标环境: 1. Redmine ...

  7. apache 日志轮询 linux cronolog

    Linux下运行的Web服务器Apache,默认日志文件是不分割的,一个整文件既不易于管理,也不易于分析统计.安装cronolog后,可以将日志文件按时间分割,易于管理和分析. cronolog安装配 ...

  8. 《C陷阱与缺陷》之1词法"陷阱"

    编译器中负责将程序分解为一个一个符号的部分,一般称为"词法分析器".在C语言中,符号之间的空白(包括空格符.制表符或换行符)将被忽略. 1.=不同于== C语言使用符号" ...

  9. 深入理解linux系统的目录结构(总结的非常详细)

    对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面 ...

  10. 1---------java调用NLPIR(ICTCLAS2016)实现分词功能

    备注:win7 64位系统,netbeans编程 NLPIR分词系统,前身是2000年发布的ICTCLAS,2009年更为现名.张华平博士打造. 实现步骤: 1.在Netbeans中,文件→新建项目→ ...