`

hibernate HQL WHERE语句工具类

阅读更多

 

package com.test;

/**
 * hibernate HQL WHERE语句工具类
 * 
 * @author YangHuiChi
 * 
 */
public class HqlWhere {

	/**
	 * 测试入口函数
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		// 查询条件
		StringBuilder strHql = new StringBuilder("from Book b where");
        strHql.append(HqlWhere.bindLike_suffix("name", "sj", ""));
        strHql.append(HqlWhere.bindEquals("b.reader.meno", "shiRen", "and"));
        strHql.append(HqlWhere.bindEquals("b.reader.name", "chenglong", "and"));
        strHql.append(HqlWhere.bindLikeAll_split("b.title", "1", "and"));
		System.out.println(strHql.toString());
	}

	/**
	 * ^^^^^^
	 * 功能:用于模糊查询 格式为:如:1,2,3,4,5,6字符串的字段(匹配: "1," 和 ",1," 和 ",1" )。
	 * @param conditionKey    条件字段名称
	 * @param conditionValue  条件值
	 * @param isAnd 前缀是否带 and
	 * @return
	 */
	public static String bindLikeAll_split(String conditionKey,
			String conditionValue, String or_And) {
		// 查询条件
		StringBuilder conditionHql = new StringBuilder(" ");
		if (!or_And.equals("")) {
			conditionHql.append(or_And).append(" ");
		}
		// 以某条件值为:"1,"开头的
		conditionHql.append("(").append(conditionKey).append(" like ").append(
				"'").append(conditionValue).append(",%'");
		// 以某条件值为:包含",1,"
		conditionHql.append(" or ").append(conditionKey).append(" like ")
				.append("'%,").append(conditionValue).append(",%'");
		// 以",1"结尾的
		conditionHql.append(" or ").append(conditionKey).append(" like ")
				.append("'").append("%,").append(conditionValue).append("') ");
		return conditionHql.toString();
	}

	/**
	 * ^^^^^^
	 * 功能:用于模糊查询(包括:前缀,中间,后缀)
	 * @param conditionKey
	 *            条件字段名称
	 * @param conditionValue
	 *            条件值
	 * @param isAnd
	 *            前缀需不需要带 and
	 * @return
	 */
	public static String bindLike_All(String conditionKey,
			String conditionValue, String or_And) {
		// 查询条件
		StringBuilder conditionHql = new StringBuilder(" ");
		if (!or_And.equals("")) {
			conditionHql.append(or_And).append(" ");
		}
		// 以某条件值为:"1,"开头的
		conditionHql.append("(").append(conditionKey).append(" like ").append(
				"'").append(conditionValue).append("%'");
		// 以某条件值为:包含",1,"
		conditionHql.append(" or ").append(conditionKey).append(" like ")
				.append("'%").append(conditionValue).append("%'");
		// 以",1"结尾的
		conditionHql.append(" or ").append(conditionKey).append(" like ")
				.append("'").append("%").append(conditionValue).append("') ");
		return conditionHql.toString();
	}

	/**
	 * ^^^^^^
	 * 功能:用于某字段"等于"某个值的查询条件
	 * 
	 * @param conditionKey
	 * @param conditionValue
	 * @param isAnd
	 * @return
	 */
	public static String bindEquals(String conditionKey,
			String conditionValue, String or_And) {
		// 查询条件
		StringBuilder conditionHql = new StringBuilder(" ");
		if (!or_And.equals("")) {
			conditionHql.append(or_And).append(" ");
		}
		conditionHql.append(conditionKey).append("=").append("'").append(
				conditionValue).append("' ");
		return conditionHql.toString();
	}

	/**
	 * ^^^^^^
	 * 功能:用于某字段"不等于"某个值的查询条件
	 * @param conditionKey
	 * @param conditionValue
	 * @param isAnd
	 * @return
	 */
	public static String bindNotEquals(String conditionKey,
			String conditionValue, String or_And) {
		// 查询条件
		StringBuilder conditionHql = new StringBuilder(" ");
		if (!or_And.equals("")) {
			conditionHql.append(or_And).append(" ");
		}
		conditionHql.append(conditionKey).append(" <> ").append("'").append(
				conditionValue).append("' ");
		return conditionHql.toString();
	}

	/**
	 * ^^^^^^
	 * 功能:用于模糊查询 前缀为某个值的条件
	 * @param conditionKey
	 * @param conditionValue
	 * @param isAnd
	 */
	public static String bindLike_prefix(String conditionKey,
			String conditionValue, String or_And) {
		// 查询条件
		StringBuilder conditionHql = new StringBuilder(" ");
		if (!or_And.equals("")) {
			conditionHql.append(or_And).append(" ");
		}
		conditionHql.append(conditionKey).append(" like ").append("'").append(
				conditionValue).append("%' ");
		return conditionHql.toString();
	}

	/**
	 * ^^^^^^
	 * 功能:用于模糊查询 后缀为某个值的条件
	 * @param conditionKey
	 * @param conditionValue
	 * @param isAnd
	 */
	public static String bindLike_suffix(String conditionKey,
			String conditionValue, String or_And) {
		// 查询条件
		StringBuilder conditionHql = new StringBuilder(" ");
		if (!or_And.equals("")) {
			conditionHql.append(or_And).append(" ");
		}
		conditionHql.append(conditionKey).append(" like ").append("'").append(
				"%").append(conditionValue).append("' ");
		return conditionHql.toString();
	}

	/**
	 * ^^^^^^
	 * 功能:用于模糊查询 包含某个值的条件
	 * @param conditionKey
	 * @param conditionValue
	 * @param isAnd
	 */
	public static String bindLike_include(String conditionKey,
			String conditionValue, String or_And) {
		// 查询条件
		StringBuilder conditionHql = new StringBuilder(" ");
		if (!or_And.equals("")) {
			conditionHql.append(or_And).append(" ");
		}
		conditionHql.append(conditionKey).append(" like ").append("'").append(
				"%").append(conditionValue).append("%' ");
		return conditionHql.toString();
	}

	/**
	 * ^^^^^^
	 * 功能:用于某字段"小于"某个值的查询条件
	 * @param conditionKey
	 * @param conditionValue
	 * @param isAnd
	 */
	public static String bind_LessThan(String conditionKey,
			String conditionValue, String or_And) {
		// 查询条件
		StringBuilder conditionHql = new StringBuilder(" ");
		if (!or_And.equals("")) {
			conditionHql.append(or_And).append(" ");
		}
		conditionHql.append(conditionKey).append(" < ").append("'").append(
				conditionValue).append("' ");
		return conditionHql.toString();
	}

	/**
	 * ^^^^^^
	 * 功能:用于某字段"大于"某个值的查询条件
	 * @param conditionKey
	 * @param conditionValue
	 * @param isAnd
	 */
	public static String bind_Than(String conditionKey,
			String conditionValue, String or_And) {
		// 查询条件
		StringBuilder conditionHql = new StringBuilder(" ");
		if (!or_And.equals("")) {
			conditionHql.append(or_And).append(" ");
		}
		conditionHql.append(conditionKey).append(" > ").append("'").append(
				conditionValue).append("' ");
		return conditionHql.toString();
	}

	/**
	 * ^^^^^^
	 * 功能:用于某字段"小于并且等于"某个值的查询条件
	 * @param conditionKey
	 * @param conditionValue
	 * @param isAnd
	 */
	public static String bind_LessThan_Equal(String conditionKey,
			String conditionValue, String or_And) {
		// 查询条件
		StringBuilder conditionHql = new StringBuilder(" ");
		if (!or_And.equals("")) {
			conditionHql.append(or_And).append(" ");
		}
		conditionHql.append(conditionKey).append(" <= ").append("'").append(
				conditionValue).append("' ");
		return conditionHql.toString();
	}

	/**
	 * ^^^^^^
	 * 功能:用于某字段"大于并且等于"某个值的查询条件
	 * @param conditionKey
	 * @param conditionValue
	 * @param isAnd
	 */
	public static String bind_Than_Equal(String conditionKey,
			String conditionValue, String or_And) {
		// 查询条件
		StringBuilder conditionHql = new StringBuilder(" ");
		if (!or_And.equals("")) {
			conditionHql.append(or_And).append(" ");
		}
		conditionHql.append(conditionKey).append(" >= ").append("'").append(
				conditionValue).append("' ");
		return conditionHql.toString();
	}

}

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    hibernate hql where语句拼接工具类

    本文将深入探讨“hibernate hql where语句拼接工具类”,并结合给出的`HqlWhere.java`文件,来讲解如何构建这样的工具类以及其背后的原理和用途。 首先,我们需要理解HQL中的WHERE子句。WHERE子句用于在查询结果中...

    hibernate的hql语句

    总之,Hibernate的HQL语句为开发者提供了强大的面向对象的数据库查询工具,它简化了对象与数据库之间的交互,使得SSH框架下的数据操作更为灵活和高效。熟练掌握HQL,有助于提升开发效率和项目质量。

    HibernateHql综合测试小程序

    本程序“HibernateHql综合测试小程序”是针对Hibernate中的HQL(Hibernate Query Language)进行的一系列功能测试,涵盖了二十多种不同的HQL语句,旨在帮助开发者深入理解和熟练运用Hibernate的查询能力。...

    Hibernate-HQL.rar_HQL_hibernate hql

    总之,Hibernate-HQL是Java开发中处理数据库查询的重要工具,通过理解和熟练运用HQL,可以显著提高开发效率,降低维护成本。通过深入学习和实践,开发者可以更好地驾驭这个强大的查询语言,提升项目开发的质量和效率...

    Hibernate HQL.txt

    Hibernate HQL是一种面向对象的查询语言,它允许开发人员以一种更加自然的方式来表达数据库查询,而无需直接编写SQL语句。HQL提供了类似于SQL的强大查询能力,但更符合面向对象编程的思维方式,这使得它在处理持久化...

    精通hibernate HQL语言

    例如,如果我们想要获取`Student`类的所有实例,可以使用如下HQL语句: ```java String hql = "from Student"; List&lt;Student&gt; students = session.createQuery(hql).list(); ``` 这里的`session.createQuery()`...

    hibernate_hql.rar_HQL

    首先,HQL是Hibernate提供的一个强大的查询工具,它允许开发者用类名和属性名来代替表名和列名,从而避免了直接操作SQL语句的繁琐。HQL支持基本查询、聚合函数、分组、排序、子查询以及连接查询等多种操作,使得...

    Hibernate之HQL查询

    HQL查询语句结构通常包括以下几个部分:`SELECT`, `FROM`, `WHERE`, `GROUP BY`, `HAVING`, `ORDER BY`。这些关键字与SQL中的用法类似,但HQL中的对象和属性是基于Java类和它们的成员。 例如,假设我们有一个`...

    hibernate 查询?Hibernate的HQL查询

    在这样的工具类基础上,我们可以轻松地在业务代码中构建和执行HQL查询,提高开发效率。 四、HQL的优势 1. **面向对象**:HQL使用类和属性代替表和列,与Java代码的风格一致。 2. **多态性**:支持查询不同类型的...

    hibernate的HQL的模糊查询

    综上所述,Hibernate的HQL模糊查询是开发中不可或缺的工具,它提供了一种简单而强大的方式来处理数据库的模糊查询需求。通过理解并熟练掌握这些概念,可以更好地利用Hibernate进行数据操作,提升项目的开发效率和...

    hql语句经典教程

    HQL是Hibernate中用于检索对象的强大工具,它的设计考虑了面向对象编程的特点,提供了丰富的连接和预加载策略。通过熟练掌握HQL,开发者能更高效地操作和查询持久化对象,提高应用程序的性能。在实践中,应根据具体...

    hql语句的学习,很有用的东西

    总的来说,HQL作为Hibernate的一部分,为开发者提供了强大的工具,使他们能够在面向对象的环境中优雅地进行数据库操作。通过学习和熟练掌握HQL,可以提高开发效率,减少代码出错的可能性,并增强应用程序的安全性。...

    hql详细讲解,实例演示

    总之,HQL是Hibernate提供的强大查询工具,它可以让我们用面向对象的方式来处理数据库查询,简化了传统SQL的复杂性。同时,理解Hibernate映射文件中的各种元素对于有效利用Hibernate至关重要。通过这些元素,我们...

    hibernate3.2 (十)HQL查询

    HQL查询语句的结构与SQL类似,包括SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY等子句,但它支持更多的面向对象特性,如类、继承、集合等。 二、HQL查询的基本语法 1. 查询所有对象:`from 类名`,例如:`from...

    强烈建议的HQL语法规则详解

    总之,HQL是Hibernate中的核心查询工具,它的使用对于Java开发者,特别是那些处理数据库操作的开发者来说至关重要。通过学习和实践HQL,你可以更好地理解和利用Hibernate的面向对象特性,实现高效、灵活的数据访问。

    Hibernate-HQL

    总的来说,Hibernate-HQL是Java开发中处理数据库操作的重要工具,它简化了数据库操作,提高了开发效率。深入学习和理解HQL,能够帮助开发者更好地利用Hibernate框架,构建高效且易于维护的Java应用。

    hql查询语句

    在Java开发领域,尤其是使用Struts、Spring和Hibernate框架构建应用程序时,HQL(Hibernate Query Language)是一种强大的工具,用于处理对象关系映射(ORM)的数据库查询。HQL是面向对象的,允许开发者以类和对象的...

    HQL多对多的查询语句分析

    标题"**HQL多对多的查询语句分析**"主要关注的是如何在Hibernate中使用HQL处理数据库中的多对多关联关系查询。在数据库设计中,多对多关系是最复杂的关联类型,它意味着一个实体可以与多个其他实体相关联,反之亦然...

Global site tag (gtag.js) - Google Analytics