public class EntityWrapper<T> extends Object implements Serializable
Entity 对象封装操作类,定义T-SQL语法
| 限定符和类型 | 字段和说明 |
|---|---|
protected T |
entity
数据库表映射实体类
|
protected TSqlPlus |
sql
实现了TSQL语法的SQL实体
|
protected String |
sqlSelect
SQL 查询字段内容,例如:id,name,age
|
| 构造器和说明 |
|---|
EntityWrapper() |
EntityWrapper(T entity) |
EntityWrapper(T entity,
String sqlSelect) |
| 限定符和类型 | 方法和说明 |
|---|---|
EntityWrapper<T> |
addFilter(String sqlWhere,
Object... params)
为了兼容之前的版本,可使用where()或and()替代
|
EntityWrapper<T> |
addFilterIfNeed(boolean need,
String sqlWhere,
Object... params)
根据判断条件来添加条件语句部分 使用 andIf() 替代
eg: ew.filterIfNeed(false,"name='zhangsan'").where("name='zhangsan'")
.filterIfNeed(true,"id={0}",22)
输出: WHERE (name='zhangsan' AND id=22)
|
EntityWrapper<T> |
and(String sqlAnd,
Object... params)
AND 连接后续条件
|
EntityWrapper<T> |
andNew(String sqlAnd,
Object... params)
使用AND连接并换行
eg: ew.where("name='zhangsan'").and("id=11").andNew("statu=1"); 输出: WHERE
(name='zhangsan' AND id=11) AND (statu=1)
|
EntityWrapper<T> |
between(String column,
String val1,
String val2)
betwwee 条件语句
|
protected void |
dealParams(Object[] params,
int length)
处理Object类型的参数 如果类型为String,自动添加单引号 'value'。
|
EntityWrapper<T> |
exists(String value)
EXISTS 条件语句,目前适配mysql及oracle
|
protected String |
formatSql(String sqlStr,
Object... params)
格式化SQL
|
protected String |
formatSqlIfNeed(boolean need,
String sqlStr,
Object... params)
根据需要格式化SQL
|
T |
getEntity() |
String |
getSqlSegment()
SQL 片段
|
String |
getSqlSelect() |
EntityWrapper<T> |
groupBy(String columns)
SQL中groupBy关键字跟的条件语句
eg: ew.where("name='zhangsan'").groupBy("id,name")
|
EntityWrapper<T> |
having(String sqlHaving,
Object... params)
SQL中having关键字跟的条件语句
eg: ew.groupBy("id,name").having("id={0}",22).and("password is not null")
|
EntityWrapper<T> |
in(String column,
List<?> value)
IN 条件语句,目前适配mysql及oracle
|
EntityWrapper<T> |
in(String column,
Object... value)
IN 条件语句,目前适配mysql及oracle
|
EntityWrapper<T> |
in(String column,
String value)
IN 条件语句,目前适配mysql及oracle
|
EntityWrapper<T> |
isNotNull(String columns)
is not null 条件
|
EntityWrapper<T> |
isNull(String columns)
is not null 条件
|
EntityWrapper<T> |
like(String column,
String value)
LIKE条件语句,value中无需前后% 目前适配mysql及oracle
|
EntityWrapper<T> |
notExists(String value)
NOT EXISTS条件语句
|
EntityWrapper<T> |
notIn(String column,
List<?> value)
NOT IN 条件语句,目前适配mysql及oracle
|
EntityWrapper<T> |
notIn(String column,
Object... value)
NOT IN 条件语句,目前适配mysql及oracle
|
EntityWrapper<T> |
notIn(String column,
String value)
NOT IN条件语句
|
EntityWrapper<T> |
notLike(String column,
String value)
NOT LIKE条件语句,value中无需前后% 目前适配mysql及oracle
|
EntityWrapper<T> |
or(String sqlOr,
Object... params)
添加OR条件
|
EntityWrapper<T> |
orderBy(String columns)
SQL中orderby关键字跟的条件语句
eg: ew.groupBy("id,name").having("id={0}",22).and("password is not null"
).orderBy("id,name")
|
EntityWrapper<T> |
orderBy(String columns,
boolean isAsc)
SQL中orderby关键字跟的条件语句,可根据变更动态排序
|
EntityWrapper<T> |
orNew(String sqlOr,
Object... params)
使用OR换行,并添加一个带()的新的条件
eg: ew.where("name='zhangsan'").and("id=11").orNew("statu=1"); 输出: WHERE
(name='zhangsan' AND id=11) OR (statu=1)
|
void |
setEntity(T entity) |
void |
setSqlSelect(String sqlSelect) |
protected String |
stripSqlInjection(String value)
SQL注入内容剥离
|
EntityWrapper<T> |
where(String sqlWhere,
Object... params)
SQL中WHERE关键字跟的条件语句
eg: ew.where("name='zhangsan'").where("id={0}","123");
输出: WHERE (NAME='zhangsan' AND id=123)
|
protected T entity
protected String sqlSelect
protected TSqlPlus sql
public EntityWrapper()
public EntityWrapper(T entity)
public T getEntity()
public void setEntity(T entity)
public String getSqlSelect()
public void setSqlSelect(String sqlSelect)
public String getSqlSegment()
public EntityWrapper<T> where(String sqlWhere, Object... params)
SQL中WHERE关键字跟的条件语句
eg: ew.where("name='zhangsan'").where("id={0}","123");
输出: WHERE (NAME='zhangsan' AND id=123)
sqlWhere - where语句params - 参数集public EntityWrapper<T> and(String sqlAnd, Object... params)
AND 连接后续条件
sqlAnd - and条件语句params - 参数集public EntityWrapper<T> andNew(String sqlAnd, Object... params)
使用AND连接并换行
eg: ew.where("name='zhangsan'").and("id=11").andNew("statu=1"); 输出: WHERE (name='zhangsan' AND id=11) AND (statu=1)
sqlAnd - AND 条件语句params - 参数值public EntityWrapper<T> or(String sqlOr, Object... params)
添加OR条件
sqlOr - or 条件语句params - 参数集public EntityWrapper<T> orNew(String sqlOr, Object... params)
使用OR换行,并添加一个带()的新的条件
eg: ew.where("name='zhangsan'").and("id=11").orNew("statu=1"); 输出: WHERE (name='zhangsan' AND id=11) OR (statu=1)
sqlOr - AND 条件语句params - 参数值public EntityWrapper<T> groupBy(String columns)
SQL中groupBy关键字跟的条件语句
eg: ew.where("name='zhangsan'").groupBy("id,name")
columns - SQL 中的 Group by 语句,无需输入 Group By 关键字public EntityWrapper<T> having(String sqlHaving, Object... params)
SQL中having关键字跟的条件语句
eg: ew.groupBy("id,name").having("id={0}",22).and("password is not null")
sqlHaving - having关键字后面跟随的语句params - 参数集public EntityWrapper<T> orderBy(String columns)
SQL中orderby关键字跟的条件语句
eg: ew.groupBy("id,name").having("id={0}",22).and("password is not null" ).orderBy("id,name")
columns - SQL 中的 order by 语句,无需输入 Order By 关键字public EntityWrapper<T> orderBy(String columns, boolean isAsc)
SQL中orderby关键字跟的条件语句,可根据变更动态排序
columns - SQL 中的 order by 语句,无需输入 Order By 关键字isAsc - 是否为升序public EntityWrapper<T> like(String column, String value)
column - 字段名称value - 匹配值public EntityWrapper<T> notLike(String column, String value)
column - 字段名称value - 匹配值public EntityWrapper<T> isNotNull(String columns)
columns - 字段名称。多个字段以逗号分隔。public EntityWrapper<T> isNull(String columns)
columns - 字段名称。多个字段以逗号分隔。public EntityWrapper<T> exists(String value)
value - 匹配值public EntityWrapper<T> notExists(String value)
value - 匹配值public EntityWrapper<T> in(String column, String value)
column - 字段名称value - 逗号拼接的字符串public EntityWrapper<T> notIn(String column, String value)
column - 字段名称value - 逗号拼接的字符串public EntityWrapper<T> in(String column, List<?> value)
column - 字段名称value - 匹配值 List集合public EntityWrapper<T> notIn(String column, List<?> value)
column - 字段名称value - 匹配值 List集合public EntityWrapper<T> in(String column, Object... value)
column - 字段名称value - 匹配值 object数组public EntityWrapper<T> notIn(String column, Object... value)
column - 字段名称value - 匹配值 object数组public EntityWrapper<T> between(String column, String val1, String val2)
column - 字段名称val1 - val2 - public EntityWrapper<T> addFilter(String sqlWhere, Object... params)
sqlWhere - where sql部分params - 参数集public EntityWrapper<T> addFilterIfNeed(boolean need, String sqlWhere, Object... params)
根据判断条件来添加条件语句部分 使用 andIf() 替代
eg: ew.filterIfNeed(false,"name='zhangsan'").where("name='zhangsan'") .filterIfNeed(true,"id={0}",22)
输出: WHERE (name='zhangsan' AND id=22)
need - 是否需要添加该条件sqlWhere - 条件语句params - 参数集protected String stripSqlInjection(String value)
SQL注入内容剥离
value - 待处理内容protected String formatSql(String sqlStr, Object... params)
格式化SQL
sqlStr - SQL语句部分params - 参数集protected String formatSqlIfNeed(boolean need, String sqlStr, Object... params)
根据需要格式化SQL
need - 是否需要格式化sqlStr - SQL语句部分params - 参数集protected void dealParams(Object[] params, int length)
处理Object类型的参数 如果类型为String,自动添加单引号 'value'。当前字符串已经包含单引号,则不做修改 如果类型为Object,自动转换成String类型
params - 参数集length - 参数数量Copyright © 2016. All rights reserved.