hibernate hql where语句拼接工具类
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语句拼接工具类的更多相关文章
- Hibernate HQL查询语句总结
Hibernate HQL查询语句总结 1. 实体查询:有关实体查询技术,其实我们在先前已经有多次涉及,比如下面的例子:String hql="from User user ";L ...
- hibernate HQL添加语句
1.Hibernate HQL添加语句 save();方法使用HQL语句来完成插入操作是不能实现的,不管你使用insert into....values...还是insert into.....sel ...
- hibernate框架学习第二天:核心API、工具类、事务、查询、方言、主键生成策略等
核心API Configuration 描述的是一个封装所有配置信息的对象 1.加载hibernate.properties(非主流,早期) Configuration conf = new Conf ...
- hql语句查询实体类采用list方法的返回结果集
在hibernate中,用hql语句查询实体类,采用list方法的返回结果为一个List,该List中封装的对象分为以下三种情况:1.查询全部字段的情况下,如"from 实体类", ...
- 自己写的Python数据库连接类和sql语句拼接方法
这个工具类十分简单和简洁. sql拼接方法 # encoding=utf-8 from django.http import HttpResponse from anyjson import seri ...
- Hibernate之工具类HibernateUtil
原创文章,转载请注明:Hibernate之工具类HibernateUtil By Lucio.Yang 1.最简单的工具类,实现SessionFactory的单例共享,session的管理 pack ...
- Hibernate.基础篇《一》.Hibernate工具类.
Hibernate.基础篇<一>.Hibernate工具类. 话述: Hibernate.基础篇第一篇,前面是代码.后面再加理论&实践. Hibernate使用的版本是:5.x,在 ...
- hibernate的hql查询语句总结
这篇随笔将会记录hql的常用的查询语句,为日后查看提供便利. 在这里通过定义了三个类,Special.Classroom.Student来做测试,Special与Classroom是一对多,Class ...
- Hibernate 工具类
1.HibernateConfigUtil.java(HIbernate配置工具类) import org.hibernate.Session; import org.hibernate.Sessio ...
随机推荐
- UI5-文档-4.28-Unit Test with QUnit
现在我们在应用程序中有了一个测试文件夹,我们可以开始增加我们的测试覆盖率. 实际上,到目前为止我们添加到应用程序中的每个特性都需要单独的测试用例.到目前为止,我们完全忽略了这一点,所以让我们为步骤23 ...
- JavaScript中有三个可以对字符串编码的函数,分别是: escape(),encodeURI(),encodeURIComponent()
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...
- 遍历python字典几种方法
遍历python字典几种方法 from: http://ghostfromheaven.iteye.com/blog/1549441 aDict = {'key1':'value1', 'key2': ...
- 数据恢复软件extundelete介绍
linux下文件系统一般由文件名.Inode.Block三部分组成.当一个用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它的inode,看该用户是否具有访问这个文件的权限.如果有, ...
- Get与Post提交方式的区别
用 curl 测试 post 请求: curl -d "agentCode=RB&startDate=2017-07-01&endDate=2017-09-01& ...
- neo4j 学习-2
Neo4j 查询例句 MATCH (john {name: 'John'})-[:friend]->()-[:friend]->(fof) RETURN john.name, fof.na ...
- input:file属性
1.accept 只能选择png和gif图片 <input id="fileId1" type="file" accept="image/png ...
- InnoDB FULLTEXT
1.概要 InnoDB引擎对FULLTEXT索引的支持是MySQL5.6新引入的特性,之前只有MyISAM引擎支持FULLTEXT索引.对于FULLTEXT索引的内容可以使用MATCH()…AGAIN ...
- PAT L2-008 最长对称子串(模拟字符串)
对给定的字符串,本题要求你输出最长对称子串的长度.例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11. 输入格式: 输入在一 ...
- 指针c艹
#include <iostream> using namespace std;int value=1;void func(int *p){ p=&value; }void fun ...