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检索方式,分页查询,命名查询语句,投影查询,报表查询
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- SharePoint 2013 Error - TypeError: Unable to get property 'replace' of undefined or null reference
错误信息 TypeError: Unable to get property ‘replace’ of undefined or null referenceTypeError: Unable to ...
- SharePoint Online 创建门户网站系列之图片滚动
前 言 创建SharePoint Online栏目我们之前已经介绍过了,具体就是内容编辑器方式.自带WebPart方式和JavaScript读取后台数据前台做展示的三种: 但是,对于复杂的展示来说,这 ...
- 图文详细解说DevExpress 2015新版亮点【附文档下载】
历时两个月,翻译自官网的更新说明文档,最后整理成册,文末附PDF地址. DevExpress 在今年6月份发布了正式的2015版本,2015在旧版基础上有明显的升级改进,尤其是DevExtreme.W ...
- <转>iOS性能优化:Instruments使用实战
最近采用Instruments 来分析整个应用程序的性能.发现很多有意思的点,以及性能优化和一些分析性能消耗的技巧,小结如下. Instruments使用技巧 关于Instruments官方有一个很有 ...
- Android执行程序或脚本的方法
Java中提供了两种方法来执行程序或脚本: (1) 使用Runtime的exec()方法 (2) 使用ProcessBuilder的start()方法 ProcessBuilder.start() 和 ...
- 【C语言】C语言数据类型
目录: [数据类型图] [基本数据类型] · 整型 · 实型 · 字符型 · 布尔类型 1.数据类型图 2.基本数据类型 · 整型 用于准确表示整数,根据表示范围的不同分为三种:短整型 ...
- iOS多线程实现1-pthread
1 操作系统.进程.线程简单介绍 现在的程序都是在操作系统上跑,很少有裸机的,而且大部分的嵌入式应用也都支持操作系统,当然还有一些很低端的嵌入式设备没有操作系统. iPhone手机跑的是iOS操作系统 ...
- (转)postman中 form-data、x-www-form-urlencoded、raw、binary的区别
1.form-data: 就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开.既可以上传键值对,也可以上传文件.当上传的字段是文件 ...
- Swift开发第十一篇——Designated、Convenience和Required
本篇主要讲解 Swift 中 Designated.Convenience和 Required 的使用: 在 OC 中 init 方法是非常不安全的,没人能够保证 init 只被调用一次,也没有人保证 ...
- Javascript 优化项目代码技巧之语言基础(二)
上一篇随笔介绍了如何正确判断对象类型.避免变量污染,特殊值(null.undefined.NaN)的使用,以及其他Javascript中常用关键字与方法的优化,这篇随笔将着重介绍Javascr ...