org.nutz.dao
类 Sqls

java.lang.Object
  继承者 org.nutz.dao.Sqls

public abstract class Sqls
extends java.lang.Object

提供了 Sql 相关的帮助函数

作者:
zozoh(zozohtnt@gmail.com)

嵌套类摘要
static class Sqls.CallbackFactory
           
 
字段摘要
static Sqls.CallbackFactory callback
          一些内置的回调对象
 
构造方法摘要
Sqls()
           
 
方法摘要
static Sql create(java.lang.String sql)
          创建了一个 Sql 对象。
static Sql createf(java.lang.String fmt, java.lang.Object... args)
          创建了一个 Sql 对象。
static java.lang.CharSequence escapeFieldValue(java.lang.CharSequence s)
          将 SQL 的字段值进行转意,可以用来防止 SQL 注入攻击
static java.lang.CharSequence escapeSqlFieldValue(java.lang.CharSequence s)
          将 SQL 的字段值进行转意,可以用来防止 SQL 注入攻击,
同时,它也会将 Sql 的特殊标记 '$' 和 '@' 进行转译
static java.lang.CharSequence escapteConditionValue(java.lang.CharSequence s)
          将 SQL 的 WHERE 条件值进行转意,可以用来防止 SQL 注入攻击
static Sql fetchEntity(java.lang.String sql)
          创建一个获取单个实体对象的 Sql。
static Sql fetchInt(java.lang.String sql)
          创建一个获取整数的 Sql。
static Sql fetchLong(java.lang.String sql)
          创建一个获取长整数的 Sql。
static Sql fetchRecord(java.lang.String sql)
          创建一个获取单个 Record 对象的 Sql。
static Sql fetchString(java.lang.String sql)
          创建一个获取字符串的 Sql。
static java.lang.CharSequence formatFieldValue(java.lang.Object v)
          格式化值,根据值的类型,生成 SQL 字段值的部分,它会考虑 SQL 注入
static java.lang.CharSequence formatSqlFieldValue(java.lang.Object v)
          格式化值,根据值的类型,生成 SQL 字段值的部分,它会考虑 SQL 注入,以及 SQL 的 '$' 和 '@' 转义
static boolean isNotNeedQuote(java.lang.Class<?> type)
          判断一个值,在 SQL 中是否需要单引号
static Sql queryEntity(java.lang.String sql)
          创建一个获取一组实体对象的 Sql。
static Sql queryRecord(java.lang.String sql)
          创建一个获取一组 Record 实体对象的 Sql。
static
<T extends Sql>
void
setSqlBorning(java.lang.Class<T> type)
          改变 Sql 接口的实现类,如果你调用了这个方法,以后你再调用本类其他帮助函数创建的 SQL 就是你提供的这个实现类 默认的,将用 org.nutz.dao.sql.impl.sql.NutSql 作为实现类 你给出的 Sql 实现类必须有一个可访问的构造函数,接受一个字符串型参数
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

callback

public static Sqls.CallbackFactory callback
一些内置的回调对象

构造方法详细信息

Sqls

public Sqls()
方法详细信息

setSqlBorning

public static <T extends Sql> void setSqlBorning(java.lang.Class<T> type)
改变 Sql 接口的实现类,如果你调用了这个方法,以后你再调用本类其他帮助函数创建的 SQL 就是你提供的这个实现类

默认的,将用 org.nutz.dao.sql.impl.sql.NutSql 作为实现类

你给出的 Sql 实现类必须有一个可访问的构造函数,接受一个字符串型参数

参数:
type - 你的 Sql 接口实现类

create

public static Sql create(java.lang.String sql)
创建了一个 Sql 对象。

传入的 Sql 语句支持变量和参数占位符:

参数:
sql - Sql 语句
返回:
Sql 对象
另请参见:
Sql

createf

public static Sql createf(java.lang.String fmt,
                          java.lang.Object... args)
创建了一个 Sql 对象。

传入的 Sql 语句支持变量和参数占位符:

参数:
fmt - 格式字符,格式参看 String.format 函数
args - 格式字符串的参数
返回:
Sql 对象

fetchEntity

public static Sql fetchEntity(java.lang.String sql)
创建一个获取单个实体对象的 Sql。

这个函数除了执行 create(String)外,还会为这个 Sql 语句设置回调,用来获取实体对象。

注意:返回的 Sql 对象在执行前,一定要通过 setEntity 设置 一个有效的实体,否则,会抛出异常。

参数:
sql - Sql 语句
返回:
Sql 对象
另请参见:
Sql, Entity

fetchRecord

public static Sql fetchRecord(java.lang.String sql)
创建一个获取单个 Record 对象的 Sql。

这个函数除了执行 create(String)外,还会为这个 Sql 语句设置回调,用来获取实体对象。

参数:
sql - Sql 语句
返回:
Sql 对象
另请参见:
Sql, Entity

fetchInt

public static Sql fetchInt(java.lang.String sql)
创建一个获取整数的 Sql。

这个函数除了执行 create(String)外,还会为这个 Sql 语句设置回调,用来获取整数值。

注意:你的 Sql 语句返回的 ResultSet 的第一列必须是数字

参数:
sql - Sql 语句
返回:
Sql 对象
另请参见:
Sql

fetchLong

public static Sql fetchLong(java.lang.String sql)
创建一个获取长整数的 Sql。

这个函数除了执行 create(String)外,还会为这个 Sql 语句设置回调,用来获取长整数值。

注意:你的 Sql 语句返回的 ResultSet 的第一列必须是数字

参数:
sql - Sql 语句
返回:
Sql 对象
另请参见:
Sql

fetchString

public static Sql fetchString(java.lang.String sql)
创建一个获取字符串的 Sql。

这个函数除了执行 create(String)外,还会为这个 Sql 语句设置回调,用来获取字符串。

注意:你的 Sql 语句返回的 ResultSet 的第一列必须是字符串

参数:
sql - Sql 语句
返回:
Sql 对象
另请参见:
Sql

queryEntity

public static Sql queryEntity(java.lang.String sql)
创建一个获取一组实体对象的 Sql。

这个函数除了执行 create(String)外,还会为这个 Sql 语句设置回调,用来获取一组实体对象。

注意:返回的 Sql 对象在执行前,一定要通过 setEntity 设置 一个有效的实体,否则,会抛出异常。

参数:
sql - Sql 语句
返回:
Sql 对象
另请参见:
Sql, Entity

queryRecord

public static Sql queryRecord(java.lang.String sql)
创建一个获取一组 Record 实体对象的 Sql。

这个函数除了执行 create(String)外,还会为这个 Sql 语句设置回调,用来获取一组实体对象。

参数:
sql - Sql 语句
返回:
Sql 对象

formatFieldValue

public static java.lang.CharSequence formatFieldValue(java.lang.Object v)
格式化值,根据值的类型,生成 SQL 字段值的部分,它会考虑 SQL 注入

参数:
v - 字段值
返回:
格式化后的 Sql 字段值,可以直接拼装在 SQL 里面

formatSqlFieldValue

public static java.lang.CharSequence formatSqlFieldValue(java.lang.Object v)
格式化值,根据值的类型,生成 SQL 字段值的部分,它会考虑 SQL 注入,以及 SQL 的 '$' 和 '@' 转义

参数:
v - 字段值
返回:
格式化后的 Sql 字段值,可以直接拼装在 SQL 里面

escapeFieldValue

public static java.lang.CharSequence escapeFieldValue(java.lang.CharSequence s)
将 SQL 的字段值进行转意,可以用来防止 SQL 注入攻击

参数:
s - 字段值
返回:
格式化后的 Sql 字段值,可以直接拼装在 SQL 里面

escapeSqlFieldValue

public static java.lang.CharSequence escapeSqlFieldValue(java.lang.CharSequence s)
将 SQL 的字段值进行转意,可以用来防止 SQL 注入攻击,
同时,它也会将 Sql 的特殊标记 '$' 和 '@' 进行转译

参数:
s - 字段值
返回:
格式化后的 Sql 字段值,可以直接拼装在 SQL 里面

escapteConditionValue

public static java.lang.CharSequence escapteConditionValue(java.lang.CharSequence s)
将 SQL 的 WHERE 条件值进行转意,可以用来防止 SQL 注入攻击

参数:
s - 字段值
返回:
格式化后的 Sql 字段值,可以直接拼装在 SQL 里面

isNotNeedQuote

public static boolean isNotNeedQuote(java.lang.Class<?> type)
判断一个值,在 SQL 中是否需要单引号

参数:
type - 类型
返回:
是否需要加上单引号