Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
io.vertx.ext.sql.assist.SqlWhereCondition Maven / Gradle / Ivy
package io.vertx.ext.sql.assist;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import io.vertx.core.json.JsonArray;
import io.vertx.core.json.JsonObject;
/**
* SqlAssist的条件类,require属性为列的条件,value和values为条件值
*
* @author Mirren
* @param
*/
public class SqlWhereCondition {
/** 条件 */
private String require;
/** 条件值,单个 */
private T value;
/** 条件值,多个 */
private Object[] values;
/**
* 将当前对象装换为JsonObject
*
* @return
*/
public JsonObject toJson() {
JsonObject json = new JsonObject();
if (require != null) {
json.put("require", require);
}
if (value != null) {
json.put("value", value);
}
if (values != null) {
JsonArray array = new JsonArray();
for (int i = 0; i < values.length; i++) {
array.add(values[i]);
}
json.put("values", array);
}
return json;
}
/**
* 将一个JsonObject对象装换为SqlWhereCondition
*
* @param obj
* @return
*/
public static SqlWhereCondition> fromJson(JsonObject obj) {
SqlWhereCondition condition = new SqlWhereCondition<>();
if (obj.getValue("require") instanceof String) {
condition.setRequire(obj.getString("require"));
}
if (obj.getValue("value") != null) {
condition.setValue(obj.getValue("value"));
}
if (obj.getValue("values") instanceof JsonArray) {
List list = new ArrayList<>();
obj.getJsonArray("values").forEach(va -> {
list.add(va);
});
condition.setValues(list.toArray());
}
return condition;
}
public SqlWhereCondition() {
super();
}
public SqlWhereCondition(String require, T value) {
super();
this.require = require;
this.value = value;
}
public SqlWhereCondition(String require, Object... values) {
super();
this.require = require;
this.values = values;
}
/**
* SQL: [and] column = value
* 注释: 并且列名=条件值
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @param value
* 条件值
* @return
*/
public static SqlWhereCondition andEq(String column, T value) {
return new SqlWhereCondition("and " + column + " = ? ", value);
}
/**
* SQL: [or] column = value
* 注释: 或者列名=条件值
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @param value
* 条件值
* @return
*/
public static SqlWhereCondition orEq(String column, T value) {
return new SqlWhereCondition("or " + column + " = ? ", value);
}
/**
* SQL: [and] column <> value
* 解释: 并且列名不等于条件值
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @param value
* 条件值
* @return
*/
public static SqlWhereCondition andNeq(String column, T value) {
return new SqlWhereCondition("and " + column + " <> ? ", value);
}
/**
* SQL: [or] column <> value
* 解释: 或者列名不等于条件值
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @param value
* 条件值
* @return
*/
public static SqlWhereCondition orNeq(String column, T value) {
return new SqlWhereCondition("or " + column + " <> ? ", value);
}
/**
* SQL: [and] column < value
* 解释: 并且列名小于条件值
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @param value
* 条件值
* @return
*/
public static SqlWhereCondition andLt(String column, T value) {
return new SqlWhereCondition("and " + column + " < ? ", value);
}
/**
* SQL: [or] column < value
* 解释: 或者列名小于条件值
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @param value
* 条件值
* @return
*/
public static SqlWhereCondition orLt(String column, T value) {
return new SqlWhereCondition("or " + column + " < ? ", value);
}
/**
* SQL: [and] column <= value
* 解释: 并且列名小于等于条件值
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @param value
* 条件值
* @return
*/
public static SqlWhereCondition andLte(String column, T value) {
return new SqlWhereCondition("and " + column + " <= ? ", value);
}
/**
* SQL: [or] column <= value
* 解释: 或者列名小于等于条件值
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @param value
* 条件值
* @return
*/
public static SqlWhereCondition orLte(String column, T value) {
return new SqlWhereCondition("or " + column + " <= ? ", value);
}
/**
* SQL: [and] column > value
* 解释: 并且列名大于条件值
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @param value
* 条件值
* @return
*/
public static SqlWhereCondition andGt(String column, T value) {
return new SqlWhereCondition("and " + column + " > ? ", value);
}
/**
* SQL: [or] column > value
* 解释: 或者列名大于条件值
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @param value
* 条件值
* @return
*/
public static SqlWhereCondition orGt(String column, T value) {
return new SqlWhereCondition("or " + column + " > ? ", value);
}
/**
* SQL: [and] column >= value
* 解释: 并且列名大于等于条件值
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @param value
* 条件值
* @return
*/
public static SqlWhereCondition andGte(String column, T value) {
return new SqlWhereCondition("and " + column + " >= ? ", value);
}
/**
* SQL: [or] column >= value
* 解释: 或者列名大于等于条件值
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @param value
* 条件值
* @return
*/
public static SqlWhereCondition orGte(String column, T value) {
return new SqlWhereCondition("or " + column + " >= ? ", value);
}
/**
* SQL: [and] column like value
* 解释: 并且列名like条件值
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @param value
* 条件值,通配符需要自己添加
* @return
*/
public static SqlWhereCondition andLike(String column, T value) {
return new SqlWhereCondition("and " + column + " like ? ", value);
}
/**
* SQL: [or] column like value
* 解释: 或者列名like条件值
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @param value
* 条件值,通配符需要自己添加
* @return
*/
public static SqlWhereCondition orLike(String column, T req) {
return new SqlWhereCondition("or " + column + " like ? ", req);
}
/**
* SQL: [and] column not like value
* 解释: 并且列名not like条件值
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @param value
* 条件值,通配符需要自己添加
* @return
*/
public static SqlWhereCondition andNotLike(String column, T value) {
return new SqlWhereCondition("and " + column + " not like ? ", value);
}
/**
* SQL: [or] column not like value
* 解释: 或者列名 not like条件值
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @param value
* 条件值,通配符需要自己添加
* @return
*/
public static SqlWhereCondition orNotLike(String column, T req) {
return new SqlWhereCondition("or " + column + " not like ? ", req);
}
/**
* SQL: [and] column is null
* 解释: 或者列名is null
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @return
*/
public static SqlWhereCondition andIsNull(String column) {
return new SqlWhereCondition("and " + column + " is null ");
}
/**
* SQL: [or] column is null
* 解释: 或者列名is null
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @return
*/
public static SqlWhereCondition orIsNull(String column) {
return new SqlWhereCondition("or " + column + " is null ");
}
/**
* SQL: [and] column is not null
* 解释: 或者列名is not null
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @return
*/
public static SqlWhereCondition andIsNotNull(String column) {
return new SqlWhereCondition("and " + column + " is not null ");
}
/**
* SQL: [or] column is not null
* 解释: 或者列名is not null
*
* @param column
* 列名,如果存在相同列名则使用表名.列名
* @return
*/
public static SqlWhereCondition orIsNotNull(String column) {
return new SqlWhereCondition("or " + column + " is not null ");
}
/**
* SQL: [and] column [Syntax]
* 解释: 并且列名表达式,比如colum is null
*
* @param column
* 列名[与表达式],如果存在相同列名则使用表名.列名
* @return
*/
public static SqlWhereCondition and(String column) {
return new SqlWhereCondition("and " + column + " ");
}
/**
* SQL: [or] column [Syntax]
* 解释: 或者列名表达式,比如colum is null
*
* @param column
* 列名[与表达式],如果存在相同列名则使用表名.列名
* @return
*/
public static SqlWhereCondition or(String column) {
return new SqlWhereCondition("or " + column + " ");
}
/**
* 自定义查询条件:
* 示例 :
* prefix=and id in(select tid from table where w=?)
* value=1
*
* @param prefix
* SQL语句与条件值占位符
* @param value
* 条件值
* @return
*/
public static SqlWhereCondition> customCondition(String prefix, T value) {
return new SqlWhereCondition(prefix, value);
}
/**
* 自定义查询条件 :
* 示例 :
* prefix=and id in(?,?,?)
* value=1,2,3
*
* @param prefix
* SQL语句与条件值占位符
* @param value
* 条件值
* @return
*/
public static SqlWhereCondition> customCondition(String prefix, Object... value) {
return new SqlWhereCondition(prefix, value);
}
public String getRequire() {
return require;
}
public void setRequire(String require) {
this.require = require;
}
public T getValue() {
return value;
}
public void setValue(T value) {
this.value = value;
}
public Object[] getValues() {
return values;
}
public void setValues(Object[] values) {
this.values = values;
}
@Override
public String toString() {
return "SqlWhereCondition [require=" + require + ", value=" + value + ", values=" + Arrays.toString(values) + "]";
}
}