HQL基础查询语句
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基础查询语句的更多相关文章
- SQL Serever学习9——基础查询语句
		
SQL语言概述 SQL是结构化查询语言(Structure Query Language),1974年提出,1979年被IBM实现,SQL语言已经成为关系型数据库的标准语言. 包括: DDL数据定义语 ...
 - hql常用查询语句
		
// HQL: Hibernate Query Language.// 特点:// >> 1,与SQL相似,SQL中的语法基本上都可以直接使用.// >> 2,SQL查询的是表 ...
 - sql基础查询语句
		
数据库文件百度云地址:www.pan.baidu.com 脚步:下载博客园文件:select_learn.rar 1.TOP限制返回行数[percent] * from book_info --显示前 ...
 - PL/SQL第三章 基础查询语句
		
--查询所有列 select * from tab_name|view_name; SELECT * FROM emp; SELECT * FROM (SELECT * FROM emp); --查询 ...
 - oracle 基础查询语句
		
select abs(10) from dual; --取绝对值select ceil(3.6) from dual;--向上取整 select power(2,3) from dual;--2的3次 ...
 - JavaWeb_(Hibernate框架)Hibernate中数据查询语句HQL基本用法
		
HQL(Hibernate Query Language) 是面向对象的查询语言, 它和 SQL 查询语言有些相似. 在 Hibernate 提供的各种检索方式中, HQL 是使用最广的一种检索方式. ...
 - HQL查询语句
		
查询语言 Hibernate 查询语言(HQL)是一种面向对象的查询语言,类似于 SQL,但不是去对表和列进行操作,而是面向对象和它们的属性. HQL 查询被 Hibernate 翻译为传统的 SQL ...
 - 15个初学者必看的基础SQL查询语句
		
本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插 ...
 - [原创]java WEB学习笔记90:Hibernate学习之路-- -HQL检索方式,分页查询,命名查询语句,投影查询,报表查询
		
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
 
随机推荐
- 关于html页面head标签顺序
			
基本上head就这几个标签么: <meta>.<link>.<title>.<script>.<style>.<base>. 它 ...
 - DevExpress .NET界面开发示例大全
			
说到做.net界面开发,很多人应该都会想到DevExpress. 它的 .net界面开发系列一共有7个版本:WinForms.ASP.NET.MVC.WPF.Silverlight.Windows 8 ...
 - Java---Condition控制线程通信
			
java中控制线程通信的方法有:1.传统的方式:利用synchronized关键字来保证同步,结合wait(),notify(),notifyAll()控制线程通信.不灵活. 2.利用Conditio ...
 - C语言中qsort函数的应用
			
qsort函数包含在<stdlib.h>的头文件里,本文中排序都是采用的从小到大排序 一.对int类型数组排序 ]; int cmp ( const void *a , const voi ...
 - 私有Pods封装个推SDK功能(解决方案)
			
一:运用场景 公司中同时有好几个APP在开发,而且每个APP都有使用到集成个推SDK来处理消息的功能,以前的做法是每个APP都去集成并在AppDelegate处理一些SDK的代码,包含个推基础配置.消 ...
 - 【代码笔记】iOS-钢琴小游戏
			
一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> //加入头文件 #import <AudioTool ...
 - iOS 学习资源
			
这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的 ...
 - sublime mac osx 命令行打开
			
sudo ln -s /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl /usr/bin/subl 参考地址:htt ...
 - 开发笔记之NSTable 排序
			
(1)第一步设置一下button IBOutlet NSButton * nameOrderBT; IBOutlet NSButton * sizeOrderBT; (2)切换设置切换相遇函数 -(I ...
 - java jdbc 连接mysql数据库 实现增删改查
			
好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...