`

hibernate 的查询相关的

阅读更多
HQL适用于静态查询,QBC适用于动态查询
(1):HQL适用于静态查询
StringBuffer queryString=new StringBuffer();
Boolean ConditionFound=false;
if(loginid!=null)
{
queryString.append("lower(s.loginId)=:loginid");
ConditionFound=true;
}
if(password!=null)
{
if(ConditionFound)
queryString.append(" and ");
queryString.append(" s.password=:password ");
ConditionFound=true;
}
String fromClause=ConditionFound?" from ZhikeUser s where ":" from ZhikeUser ";
queryString.insert(0,fromClause).append(" order by s.id");
Query query= getSession().createQuery(queryString.toString());
if(loginid!=null)
query.setString("loginid", loginid);
if(password!=null)
query.setString("password", password);
List querylist=query.list();
for(int q=0;querylist!=null&&q<querylist.size();q++)
{
ZhikeUser zhikequeryuser=(ZhikeUser)querylist.get(q);
}

上面是通过sql语句的拼凑实现的,
其实类似:Query query=getSession().createQuery("from ZhikeUser s where s.loginId=:loginid and s.password=:password ");
(2):QBC适用于动态查询
Criteria crit= getSession().createCriteria(ZhikeUser.class);
ZhikeUser zhikeuserquery=new ZhikeUser();
zhikeuserquery.setLoginId("1");
Example example=Example.create(zhikeuserquery);
crit=crit.add(example);
List critlist=crit.list();
for(int cq=0;critlist!=null&&cq<critlist.size();cq++)
{
ZhikeUser zhikequeryuser=(ZhikeUser)critlist.get(cq);
}
这个没有问题通过
为什么
        Criterion criterion1 =
   Expression.eq("loginid",loginid);
Criterion criterion2 =
   Expression.eq("password",password);
crit=crit.add(criterion1);
crit=crit.add(criterion2);
老是报告错误为什么?

2007 11:22看web 开发一些问题有感,以及对iorit2003文章分析有感!

这个也是没有问题的
Criteria crit= getSession().createCriteria(ZhikeUser.class);
ZhikeUser zhikeuserquery=new ZhikeUser();
zhikeuserquery.setLoginId("1");
Example example=Example.create(zhikeuserquery);
crit=crit.add(example);
List critlist=crit.list();
在Hibernate中队示例查询,默认情况下会排除掉示例对象中属性值为空的属性,还可以调用Example.excludeNone(排除空串值)/excludeZeros(排除零值),或者调用Example.excludeProperty方法来指定排除特定属性。
   示例查询主要应用于组合查询中,比如根据用户输入的查询条件动态生成最终的查询语句,通过使用示例查询,可以避免由于查询条件过多而写的大量if判断语句。
    
Example.excludeNone()好像没有排除空字符串!
分享到:
评论
1 楼 lijun87 2009-10-13  
Example.excludeNone()好像没有排除空字符串

是啊..我发现也是这样,这个问题应该怎么解决呢?

相关推荐

    Hibernate连表查询 Hibernate连表查询

    根据提供的文件信息,我们可以深入探讨Hibernate中的连表查询方法及其应用。下面将详细介绍与标题、描述及部分代码相关的几个核心知识点: ### Hibernate 连表查询基础 Hibernate 是一个开源的对象关系映射(ORM)...

    struts+hibernate查询所有记录

    ### Struts+Hibernate查询所有记录 #### 一、概述 在Java Web开发中,Struts与Hibernate是非常流行的框架组合,用于构建复杂的...以上就是关于Struts+Hibernate查询所有记录的相关知识点介绍。希望对大家有所帮助!

    hibernate多表联合查询

    ### Hibernate多表联合查询详解 #### 一、引言 在实际项目开发中,我们经常需要处理复杂的数据库查询,特别是涉及到多个表之间的关联查询。Hibernate作为一款流行的Java持久层框架,提供了一种非常便捷的方式来处理...

    Hibernate查询语言HQL.PPT

    Hibernate 查询语言 HQL Hibernate 查询语言 HQL 是一种面向对象的查询语言,用于检索对象。它提供了灵活多样的查询机制,包括导航对象图、通过标识符检索、使用 HQL 检索对象、使用 Hibernate 条件 API 和使用本地...

    HQL是hibernate自己的一套查询

    根据提供的标题、描述以及部分代码内容,我们可以了解到这段材料主要涉及的是Hibernate框架中的HQL(Hibernate Query Language)查询语言的使用。接下来将详细介绍HQL的相关知识点。 ### HQL概述 HQL是Hibernate...

    三种查询方式跟踪Hibernate源码

    本文将详细阐述通过三种查询方式跟踪Hibernate源码的方法,帮助开发者更好地掌握其工作原理。 首先,我们来看第一种查询方式:HQL(Hibernate Query Language)查询。HQL是Hibernate专有的SQL方言,允许开发者以...

    Hibernate 多表连接分页查询示范项目

    项目通过 Hibernate Criteria API 展示了如何进行多表连接查询,并结合分页功能,有效地获取和展示相关数据。项目源码会详细展示如何创建 Criteria 查询,如何设置 JOIN 条件,以及如何实现分页。 **具体步骤** 1....

    Hibernate part 14:查询及数据库并发事务

    **描述:**描述为空,但我们可以推测博客内容可能包含实际示例、最佳实践以及对Hibernate查询API和事务管理机制的详细解释。 **标签:“源码”和“工具”** "源码"标签表明博客可能包含了与Hibernate源代码相关的...

    hibernate自定义查询

    本文将深入探讨Hibernate自定义查询的相关知识点。 一、Hibernate HQL查询 Hibernate Query Language (HQL) 是Hibernate提供的面向对象的查询语言,类似于SQL,但它是针对Java对象的。HQL允许我们以类和属性的名字...

    hibernateHQL关联查询

    例如,在电子商务系统中,我们需要获取用户信息及其相关的订单信息时,就可以利用HQL关联查询来简化这一过程。此外,当涉及到复杂的业务逻辑分析时,HQL关联查询同样可以发挥重要作用。 #### 六、总结 通过本文的...

    Hibernate的缓存级联查询

    HQL(Hibernate Query Language)是Hibernate提供的面向对象的查询语言,它支持多种连接查询类型,如内连接、迫切内连接、隐式内连接、左外连接、迫切左外连接、右外连接和交叉连接,提供了与SQL类似的查询功能。...

    hibernate的相关jar包

    1. `hibernate-core.jar`:这是Hibernate的核心库,包含了持久化框架的主要功能,如Session接口、Entity接口、Criteria查询等。 2. `hibernate-entitymanager.jar`:提供JPA(Java Persistence API)的支持,使得...

    基于Struts+Hibernate论坛系统

    - **浏览帖子**:当用户请求查看某个主题时,Struts Action根据请求参数,利用Hibernate查询相关的帖子和回复,并返回结果给视图进行展示。 - **搜索功能**:用户输入关键词后,Struts会调用Hibernate的查询方法,...

    hibernate 级联查询

    "common_ssh"这个文件名可能是某种归档或项目名,与SSH(Secure Shell)协议有关,但在这个上下文中,它与Hibernate级联查询的主题没有直接联系。可能是其他项目的通用配置文件或者库,或者仅仅是上传资料时的一个...

    Struts和Hibernate分页及查询

    1. **配置Struts和Hibernate**:首先,需要在项目中引入Struts和Hibernate的相关库,配置Struts的struts-config.xml文件和Hibernate的hibernate.cfg.xml配置文件。 2. **定义实体类**:根据数据库中的表结构,创建...

    hibernate5相关jar包

    Hibernate的核心库提供了ORM的基本功能,包括实体管理、会话管理、查询服务等。它包含了`SessionFactory`、`Session`、`Query`等关键接口和类,以及对JPA规范的支持。 2. JPA支持:`hibernate-entitymanager.jar` ...

    springmvc+hibernate+spring maven案例(包含分页查询)

    - 这个案例使用Maven进行构建,`pom.xml`文件定义了项目依赖,包括Spring MVC, Hibernate等相关库,Maven会自动下载这些依赖并帮助编译和打包项目。 5. **分页查询** - 分页查询在大数据量的场景下非常有用,可以...

    hibernate相关jar包

    1. **hibernate3.jar**:这是Hibernate的核心库,包含了Hibernate的所有主要组件,如实体管理器、会话工厂、查询API等。这个JAR文件使得开发者能够利用Hibernate的功能,例如定义对象-关系映射(ORM)元数据,执行...

    hibernate相关插件全集

    本篇文章将围绕"hibernate相关插件全集"这一主题,详细介绍给定的压缩包文件中包含的三个关键组件:Middlegen-Hibernate-r5、hibernate-annotations-3.3.0.GA和hibernate-extensions-2.1.3。 首先,Middlegen-...

Global site tag (gtag.js) - Google Analytics