Hibernate hql查询
来源:互联网 发布:php 处理图片 编辑:程序博客网 时间:2024/06/05 21:50
Hibernate
HQL
查询
介绍和基本语法
HQL
大小写不敏感,当有相同的实体类名时,使用包名.实体类
Query
query=session.createQuery("from
Cat
c");
List<Cat>
catlist=query.list();
返回单个对象
Query
q=session.
createQuery("select
count(c)
from
Cat
c");
Number
num=(Number)q.uniqueResult();
//返回单个实例
int
count=num.intValue();
//返回数值
查询总数时,HQL
格式必须为以上语句格式
,返回值可能为
Short
Integer
Long
BigInteger
具体由主键的类型而定
返回
Object[]数组
List<Object[]>
list=session.createQuery
("select
c.name,c.mother
from
Cat
c").list();
//获取
for(Object[]
row
:
list){
for(Object
obj
:
row){
System.out.println(obj);
}
}
返回
List
类型
String
hql="select
new
List(c.name,c.mother)
from
Cat
c"'
List<List>
list=session.cresteQuery(hql).list();
//获取
For(List
row
:
list){
For(Object
obj
:
row){
System.out.println(obj);
}
}
返回
Map
类型
String
hql="sesect
new
map(c.name
as
name,c.mother
as
mother)
"
+
"from
Cat
c"
;
List
listMap=session.creatgQuery(hql).list();
//获取
for(Map
map
:
(List<Map>
listMap){
System.out.println("Name:"+map.get("name"));
System.out.println("Mother:"+map.get("mother"));
}
Hibernate
HQL
查询
介绍和基本语法
HQL
大小写不敏感,当有相同的实体类名时,使用包名.实体类
Query
query=session.createQuery("from
Cat
c");
List<Cat>
catlist=query.list();
返回单个对象
Query
q=session.
createQuery("select
count(c)
from
Cat
c");
Number
num=(Number)q.uniqueResult();
//返回单个实例
int
count=num.intValue();
//返回数值
查询总数时,HQL
格式必须为以上语句格式
,返回值可能为
Short
Integer
Long
BigInteger
具体由主键的类型而定
返回
Object[]数组
List<Object[]>
list=session.createQuery
("select
c.name,c.mother
from
Cat
c").list();
//获取
for(Object[]
row
:
list){
for(Object
obj
:
row){
System.out.println(obj);
}
}
返回
List
类型
String
hql="select
new
List(c.name,c.mother)
from
Cat
c"'
List<List>
list=session.cresteQuery(hql).list();
//获取
For(List
row
:
list){
For(Object
obj
:
row){
System.out.println(obj);
}
}
返回
Map
类型
String
hql="sesect
new
map(c.name
as
name,c.mother
as
mother)
"
+
"from
Cat
c"
;
List
listMap=session.creatgQuery(hql).list();
//获取
for(Map
map
:
(List<Map>
listMap){
System.out.println("Name:"+map.get("name"));
System.out.println("Mother:"+map.get("mother"));
}
Hibernate
HQL
查询
介绍和基本语法
HQL
大小写不敏感,当有相同的实体类名时,使用包名.实体类
Query
query=session.createQuery("from
Cat
c");
List<Cat>
catlist=query.list();
返回单个对象
Query
q=session.
createQuery("select
count(c)
from
Cat
c");
Number
num=(Number)q.uniqueResult();
//返回单个实例
int
count=num.intValue();
//返回数值
查询总数时,HQL
格式必须为以上语句格式
,返回值可能为
Short
Integer
Long
BigInteger
具体由主键的类型而定
返回
Object[]数组
List<Object[]>
list=session.createQuery
("select
c.name,c.mother
from
Cat
c").list();
//获取
for(Object[]
row
:
list){
for(Object
obj
:
row){
System.out.println(obj);
}
}
返回
List
类型
String
hql="select
new
List(c.name,c.mother)
from
Cat
c"'
List<List>
list=session.cresteQuery(hql).list();
//获取
For(List
row
:
list){
For(Object
obj
:
row){
System.out.println(obj);
}
}
返回
Map
类型
String
hql="sesect
new
map(c.name
as
name,c.mother
as
mother)
"
+
"from
Cat
c"
;
List
listMap=session.creatgQuery(hql).list();
//获取
for(Map
map
:
(List<Map>
listMap){
System.out.println("Name:"+map.get("name"));
System.out.println("Mother:"+map.get("mother"));
}
Hibernate
HQL
查询
介绍和基本语法
HQL
大小写不敏感,当有相同的实体类名时,使用包名.实体类
Query
query=session.createQuery("from
Cat
c");
List<Cat>
catlist=query.list();
返回单个对象
Query
q=session.
createQuery("select
count(c)
from
Cat
c");
Number
num=(Number)q.uniqueResult();
//返回单个实例
int
count=num.intValue();
//返回数值
查询总数时,HQL
格式必须为以上语句格式
,返回值可能为
Short
Integer
Long
BigInteger
具体由主键的类型而定
返回
Object[]数组
List<Object[]>
list=session.createQuery
("select
c.name,c.mother
from
Cat
c").list();
//获取
for(Object[]
row
:
list){
for(Object
obj
:
row){
System.out.println(obj);
}
}
返回
List
类型
String
hql="select
new
List(c.name,c.mother)
from
Cat
c"'
List<List>
list=session.cresteQuery(hql).list();
//获取
For(List
row
:
list){
For(Object
obj
:
row){
System.out.println(obj);
}
}
返回
Map
类型
String
hql="sesect
new
map(c.name
as
name,c.mother
as
mother)
"
+
"from
Cat
c"
;
List
listMap=session.creatgQuery(hql).list();
//获取
for(Map
map
:
(List<Map>
listMap){
System.out.println("Name:"+map.get("name"));
System.out.println("Mother:"+map.get("mother"));
}
Hibernate
HQL
查询
介绍和基本语法
HQL
大小写不敏感,当有相同的实体类名时,使用包名.实体类
Query
query=session.createQuery("from
Cat
c");
List<Cat>
catlist=query.list();
返回单个对象
Query
q=session.
createQuery("select
count(c)
from
Cat
c");
Number
num=(Number)q.uniqueResult();
//返回单个实例
int
count=num.intValue();
//返回数值
查询总数时,HQL
格式必须为以上语句格式
,返回值可能为
Short
Integer
Long
BigInteger
具体由主键的类型而定
返回
Object[]数组
List<Object[]>
list=session.createQuery
("select
c.name,c.mother
from
Cat
c").list();
//获取
for(Object[]
row
:
list){
for(Object
obj
:
row){
System.out.println(obj);
}
}
返回
List
类型
String
hql="select
new
List(c.name,c.mother)
from
Cat
c"'
List<List>
list=session.cresteQuery(hql).list();
//获取
For(List
row
:
list){
For(Object
obj
:
row){
System.out.println(obj);
}
}
返回
Map
类型
String
hql="sesect
new
map(c.name
as
name,c.mother
as
mother)
"
+
"from
Cat
c"
;
List
listMap=session.creatgQuery(hql).list();
//获取
for(Map
map
:
(List<Map>
listMap){
System.out.println("Name:"+map.get("name"));
System.out.println("Mother:"+map.get("mother"));
}
Hibernate
HQL
查询
介绍和基本语法
HQL
大小写不敏感,当有相同的实体类名时,使用包名.实体类
Query
query=session.createQuery("from
Cat
c");
List<Cat>
catlist=query.list();
返回单个对象
Query
q=session.
createQuery("select
count(c)
from
Cat
c");
Number
num=(Number)q.uniqueResult();
//返回单个实例
int
count=num.intValue();
//返回数值
查询总数时,HQL
格式必须为以上语句格式
,返回值可能为
Short
Integer
Long
BigInteger
具体由主键的类型而定
返回
Object[]数组
List<Object[]>
list=session.createQuery
("select
c.name,c.mother
from
Cat
c").list();
//获取
for(Object[]
row
:
list){
for(Object
obj
:
row){
System.out.println(obj);
}
}
返回
List
类型
String
hql="select
new
List(c.name,c.mother)
from
Cat
c"'
List<List>
list=session.cresteQuery(hql).list();
//获取
For(List
row
:
list){
For(Object
obj
:
row){
System.out.println(obj);
}
}
返回
Map
类型
String
hql="sesect
new
map(c.name
as
name,c.mother
as
mother)
"
+
"from
Cat
c"
;
List
listMap=session.creatgQuery(hql).list();
//获取
for(Map
map
:
(List<Map>
listMap){
System.out.println("Name:"+map.get("name"));
System.out.println("Mother:"+map.get("mother"));
}
HibernateHQL查询介绍和基本语法
HQL大小写不敏感,当有相同的实体类名时,使用包名.实体类
Queryquery=session.createQuery("fromCatc");
List<Cat>catlist=query.list();
返回单个对象
Queryq=session.createQuery("selectcount(c)fromCatc");
Numbernum=(Number)q.uniqueResult();//返回单个实例
intcount=num.intValue();//返回数值
查询总数时,HQL格式必须为以上语句格式,返回值可能为
Short Integer Long BigInteger具体由主键的类型而定
返回Object[]数组
List<Object[]>list=session.createQuery ("selectc.name,c.motherfromCatc").list();
//获取
for(Object[]row:list)
{
for(Objectobj:row){
System.out.println(obj);
}
} 返回List类型
Stringhql="select new List(c.name,c.mother) from Cat c";
List<List>list=session.cresteQuery(hql).list();//获取
For(Listrow:list){
For(Objectobj:row){
System.out.println(obj);
}
}
返回Map类型
Stringhql="sesect new map(c.nameasname,c.mother as mother)"+"fromCat c";
ListlistMap=session.creatgQuery(hql).list();
//获取
for(Map map:(List<Map>listMap){
System.out.println("Name:"+map.get("name"));
System.out.println("Mother:"+map.get("mother"));
}
返回实体对象
String hql="select new Cat(cat.name,cat.createDate) from Cat c";
List<Cat> catList=session.createQuery(hql).list();
注意:
这样使用时,Cat类中必须存在一个public Cat(Stringname,DatecreateDate)的构造方法。
因为Hibernate是通过调用该构造方法完成返回值从Object[]数组转化到Cat类实体类的。
条件查询和运算符
Where子句的语法
Stringhql="select c from Cat c"+"where c.mother.name=null and c.createDate<:createDate"; session.createQuery(hql).setParameter("createDate",newDate()).list();
表达式setParameter()传递参数 HQL支持的运算符
数学运算符:+ - * /
比较操作符:= != <<= >>= like
逻辑计算法:andornot
SQL操作符:in、notin、between、is null、is not null is empty、number of
字符串连接:||或concat("","")
时间日期函数:current_date() current_time() current_timestamp() Second() minute() hour() day() month() year()
JPA定义的操作:substring() coalesce() lower() upper() lenth() Locate() abs() sqrt() bit_lenth() null if() trim()
数据库支持的SQL标量函数:sign() trunc() rtrim() sin()
简单的跳转语句:case...when...then...else...end
语法:看高级查询,设置查询条件时,应尽量使用setParameter()传递参数。 统计函数
Stringhql="select count(c) from Cat c where c.mother!=null";
Number num=(Number)session.createQuery(hql).uniqueResult();
intcount=num.intValue();//同返回单个对象
HQL分页显示 Stringhql="select count(c) from Cat c";
Longcount=(Long)session.createQuery(hql).uniqueResult();//查询记录总数
List<Cat>ccList=session.createQuery("fromCat") .setFirstResult(0)//从第0条开始
.setMaxResults(10).list();//取10条数据
HQL连表查询
Stringhql="select e from Event e wheree.cat.name='Ketty'";
List<Event>eventList=sessionQuery(hql).list();Where子句用到了Car表
Stringhql="select c from Cat c left join c.event se where e.description like:str"; List<Cat>list=session.createQuery(hql).setParameter("str","%dd%").list();
使用SQL数据库 Hql为jdbc格式
String hql = "select * from tb_cat";
SQLQuery sqlquery=session.createSQLQuery(hql);
sqlquery.addEntity(Cat.class);//设置输出类型
List<Cat>catList=sqlquery.list();
命名常用的查询
实体类中@注解配置,使用直接引用名字。
@NamedQuery(name="cat",query="selectcfromCatc")
@NamedNativeQuery(name="cat",query="select*fromtb_cat)
- 【Hibernate】Hibernate HQL 查询
- Hibernate查询语言:HQL
- hibernate查询语句--HQL
- Hibernate 查询语言(HQL)
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- Hibernate查询语言:HQL
- hibernate查询语句--HQL
- hibernate查询语句--HQL
- Hibernate查询语句+HQL
- Hibernate查询语言:HQL
- 查询 Hibernate HQL
- hibernate查询语句---HQL
- Hibernate查询语言HQL
- 第十六周阅读项目-3
- Android自启动管理
- Servlet的学习(二)-ServletConfig对象和ServletContext对象
- Oracle 创建数据库及导入数据
- 大型网站架构系列:缓存在分布式系统中的应用(二)
- Hibernate hql查询
- 适配器模式
- 自己编写的 matlab 线性索引转换下标 函数
- spoj COT && COT2
- 转发 源框架GPUImag
- 餐巾计划问题(最小费用流)
- Spring 中的 Bean 配置
- python爬虫设计刷博客访问量(刷访问量,赞,爬取图片)
- 前端问题更新汇总