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 ...
随机推荐
- Spring boot Tomcat配置
来自: https://www.cnblogs.com/a8457013/p/7687764.html
- vue常用
vue常用的路由的状态管理
- 流和Variant的转换
procedure TForm2.VariantToStream (const v : olevariant; Stream : T ...
- 关于struts2中ActionContext类的作用
关于struts2中ActionContext类的作用有三个: 1.获取三大作用域对象及页面参数 2.是struts标签的上下文对象 3.ThreadLocal内装的就是ActionContext 怎 ...
- GridView控件中的一些常见问题
1. 无法获取模板列中的值,使用FindControl()方法无效: 给模板列中添加隐藏域,并给隐藏域绑定要获取的值,代码如下: <asp:HiddenField ID="hfIsFr ...
- actionView
类似于actionBar也是在导航栏里用但是他使用的是menu菜单设置菜单项的AsAction=“always|withText” 本例使用LoaderCallbacks<Cursor>接 ...
- maven项目工程目录约定
使用maven创建的工程我们称它为maven工程,maven工程具有一定的目录规范,如下: src/main/java —— 存放项目的.java文件 src/main/resources —— 存放 ...
- js回车、ESC、F2按钮事件
<script type="text/javascript" language=JavaScript charset="UTF-8"> docume ...
- TeamCity+Rancher+Docker实现.Net Core项目DevOps(目前成本最小的DevOps实践)
1.准备项 1.1.服务器一台,1H4G(更小内存应该也可以,自行测试),系统:Ubuntu 16.04 64位 1.2.数据库一个,MYSQL,MSSQL都可以(还有其他的,自行配置),教程是MSS ...
- idea 注释文件和方法注释
类注释: 如下图所示