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检索方式,分页查询,命名查询语句,投影查询,报表查询
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- 3D打印公司网站dedecms大气模板
模板描述:1. 用FTP将安装包上传到服务器解压(或者解压在上传): 2. http://您的域名/install/ 进入到安装界面, 按照正常步骤安装即可:不要修改数据库表前缀,否则会造成原先数据无 ...
- Javascript到PHP加密通讯的简单实现
其实内容主要来源于上一篇博文,只是重新组织了语言,并做了原理性的阐述,更容易理解:P ----------------------------------------- 华丽的分割线 -------- ...
- ‘Cordova/CDVPlugin.h’ file not found
phonegap项目,平时真机调试没什么问题.然后想打包成ipa了,去Product --> Archive 一下,然后就报错了,说:‘Cordova/CDVPlugin.h’ file not ...
- SVN 常识
1.相关博客 http://my.oschina.net/u/1780920/blog/425792 2. 文件红色:表示文件没有添加到服务器 绿色:表示没有更新新的修改到服务器 普通黑色:表示和服务 ...
- Android draw9patch 图片制作与使用
理解一下4句话: 上边 决定左右拉升不变形 左边 决定上下拉升不变形 右边 设置内容高度区域 下边 设置内容宽度区域 下面我拿张图片分别举例说明: 1.QQ多彩气泡 聊天对话框也用.9图片制作 继承过 ...
- SDWebImage原理及使用
这个类库提供一个UIImageView类别以支持加载来自网络的远程图片.具有缓存管理,异步下载,同一个URL下载次数控制和优化等特征. SDWebImage加载图片的流程 入口 setImageWit ...
- 网络热恋之XML解析
XML 可扩展标记语言 用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言 易读性高,编码手写难度小,数据量大 NSXMLPars ...
- Mac OS 文件、文件夹重命名的方法
在Mac OS中,文件和文件名重命名的方法非常简单 选中你想要命名的文件或者文件夹,按回车,可以直接重命名,输入你要修改的内容,确认后,再按回车就OK啦--- 希望能对你有所帮助^_^
- Jexus-5.6.3使用详解、Jexus Web Server配置
一.Jexus Web Server配置 在 jexus 的工作文件夹中(一般是“/usr/jexus”)有一个基本的配置文件,文件名是“jws.conf”. jws.conf 中至少有 Site ...
- PMBOK学习笔记二-项目管理过程
项目管理过程可归纳为五类,即五大项目管理过程组 启动过程组.定义一个新项目或现有项目的一个新阶段,授权开始该项目或阶段的一组过程..规划过程组.明确项目范围,优化目标,为实现目标制定行动方案的一组过程 ...