package com.zhaoshijie.tree.other;

/**
* hibernate HQL WHERE语句工具类
*
* @author 赵士杰
*
*/
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", "zsj", "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();
}

}

------来自http://zhaoshijie.iteye.com/blog/1060576

hibernate hql where语句拼接工具类的更多相关文章

  1. Hibernate HQL查询语句总结

    Hibernate HQL查询语句总结 1. 实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql="from User user ";L ...

  2. hibernate HQL添加语句

    1.Hibernate HQL添加语句 save();方法使用HQL语句来完成插入操作是不能实现的,不管你使用insert into....values...还是insert into.....sel ...

  3. hibernate框架学习第二天:核心API、工具类、事务、查询、方言、主键生成策略等

    核心API Configuration 描述的是一个封装所有配置信息的对象 1.加载hibernate.properties(非主流,早期) Configuration conf = new Conf ...

  4. hql语句查询实体类采用list方法的返回结果集

    在hibernate中,用hql语句查询实体类,采用list方法的返回结果为一个List,该List中封装的对象分为以下三种情况:1.查询全部字段的情况下,如"from 实体类", ...

  5. 自己写的Python数据库连接类和sql语句拼接方法

    这个工具类十分简单和简洁. sql拼接方法 # encoding=utf-8 from django.http import HttpResponse from anyjson import seri ...

  6. Hibernate之工具类HibernateUtil

    原创文章,转载请注明:Hibernate之工具类HibernateUtil  By Lucio.Yang 1.最简单的工具类,实现SessionFactory的单例共享,session的管理 pack ...

  7. Hibernate.基础篇《一》.Hibernate工具类.

    Hibernate.基础篇<一>.Hibernate工具类. 话述: Hibernate.基础篇第一篇,前面是代码.后面再加理论&实践. Hibernate使用的版本是:5.x,在 ...

  8. hibernate的hql查询语句总结

    这篇随笔将会记录hql的常用的查询语句,为日后查看提供便利. 在这里通过定义了三个类,Special.Classroom.Student来做测试,Special与Classroom是一对多,Class ...

  9. Hibernate 工具类

    1.HibernateConfigUtil.java(HIbernate配置工具类) import org.hibernate.Session; import org.hibernate.Sessio ...

随机推荐

  1. visual stdio 工程 宏

    $(SolutionDir)  solution目录 $(ProjectDir) Project目录 $(TargetDir) 目标文件夹,如编译出的exe文件所在的目录 $(Configuratio ...

  2. Mysql 知识(1)

    1. 请简洁地描述下MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别? 答: SQL标准定义的四个隔离级别为:read uncommited,read committed,rep ...

  3. Linux下基于官方源代码RPM包构建自定义MySQL RPM包

    rpmbuild时不要以root用户执行! 方法一: 1.首先安装rpmbuild #yum install rpm-build gcc gcc-c++ cmake bison ncurses-dev ...

  4. 播放一个wav文件

    use mmsystem;SndPlaySound('hello.wav',SND_FILENAME or SND_SYNC) ///////////////////////////////////u ...

  5. 吴裕雄 实战PYTHON编程(5)

    text = '中华'print(type(text))#<class 'str'>text1 = text.encode('gbk')print(type(text1))#<cla ...

  6. eclipse项目setting文件

    项目下的.settings文件夹 org.eclipse.wst.common.component文件描述了项目发布到tomcat等web容器的基本信息 <?xml version=" ...

  7. git实用操作21条

    1.建空目录 mkdir e:\gg 2.把该目录变成仓库 git init   //发现当前目录下多了一个.git 3.新建文件readme.txt 4.添加文件到仓库  git add readm ...

  8. git pull 免密

    linux下 在~/下, touch创建文件 .git-credentials, 用vim编辑此文件,输入内容格式: touch .git-credentials vim .git-credentia ...

  9. tf.Session()、tf.InteractiveSession()

    tf.Session()和tf.InteractiveSession()的区别 官方tutorial是这么说的: The only difference with a regular Session ...

  10. Space Ant(极角排序)

    Space Ant http://poj.org/problem?id=1696 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions ...