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 ...
随机推荐
- mysql闯关练习
1.表关系 班级表:class 学生表:student cid caption grade_id sid sname gender clas ...
- mysql 2003: Can't connect to MySQL server on '127.0.0.1:3306' (99)
连接断开的频率太高导致报错,可以在每次连接之间sleep,或者保持一个长连接. ref:https://stackoverflow.com/questions/24884438/2003-cant-c ...
- urllib 和urllib2 模块使用简例
一.最简单的使用 import urllib,urllib2 response = urllib2.urlopen("https://www.baidu.com") print r ...
- 打地鼠Demo
using UnityEngine; using System.Collections; public enum MoleStates { NormalState,// 初始状态 UpState,// ...
- Egit的merge合并冲突具体解决方法
稍微总结下弄了半个下午的egit的merge合并冲突解决方法,网上看的都是一个模板出来的,看的糊里糊涂,花了很多时间去实验整个合并流程.. 前提工作 创建一个普通JAVA工程Test,创建一个类Tes ...
- The partial charge density (1)
============================================================================================= The pa ...
- 分享至微信、QQ、微博、复制链接
var share = { "tit": '您的朋友分享了文章', "desc": '分享来自百度文库,包含...', "pic": 'ht ...
- css写三角形
#triangle-up { width: 0; height: 0; border-left: 50px solid transparent; border-right: 5 ...
- OpenCV(图像处理)—访问像素的三种方法
方法一:用指针访问像素 #include <opencv2/opencv.hpp> #include <opencv2/core/core.hpp> #include < ...
- runloop与线程的关系