org.nutz.dao.sql
接口 Sql

所有超级接口:
DaoStatement
所有已知实现类:
NutSql

public interface Sql
extends DaoStatement

封装了自定义 SQL

作者:
zozoh(zozohtnt@gmail.com)

方法摘要
 void addBatch()
          将当前的参数列表存储,以便执行批处理
 void clearBatch()
          清除所有的曾经设置过的参数
 Sql duplicate()
           
 java.lang.String getSourceSql()
           
 VarIndex paramIndex()
           
 VarSet params()
          所谓"参数",就是当 Sql 对象转换成 PreparedStatement 对象前,会被填充成 ?
 Sql setCallback(SqlCallback callback)
          当前 Statement 被执行完毕后,有可能会产生一个 ResultSet。
 Sql setCondition(Condition cnd)
          为 SQL 增加条件,SQL 必须有 '$condition' 变量
 Sql setEntity(Entity<?> entity)
          重写父接口返回值
 DaoStatement setPager(Pager pager)
          为自定义SQL设置Pager

如果设置为非空值,那么将附加上分页语句!!

 void setSourceSql(java.lang.String sql)
           
 void setValueAdaptor(java.lang.String name, ValueAdaptor adaptor)
          手动为某个语句参数设置适配器。
 VarIndex varIndex()
           
 VarSet vars()
          所谓"变量",就是当 Sql 对象转换成 Statement 对象前,预先被填充的占位符。
 
从接口 org.nutz.dao.sql.DaoStatement 继承的方法
getAdaptors, getBoolean, getContext, getEntity, getInt, getList, getObject, getParamMatrix, getResult, getSqlType, getString, getUpdateCount, onAfter, onBefore, toPreparedStatement, toString
 

方法详细信息

vars

VarSet vars()
所谓"变量",就是当 Sql 对象转换成 Statement 对象前,预先被填充的占位符。

这个集合允许你为 SQL 的变量占位符设值

返回:
变量集合

params

VarSet params()
所谓"参数",就是当 Sql 对象转换成 PreparedStatement 对象前,会被填充成 ? 的占位符

集合是一个个的名值对,你设置了值的地方,会在执行时,被设置到 PreparedStatement中。
这样省却了你一个一个计算 ? 位置的烦恼

返回:
参数集合

setValueAdaptor

void setValueAdaptor(java.lang.String name,
                     ValueAdaptor adaptor)
手动为某个语句参数设置适配器。

默认的,Sql 的实现类会自动根据你设置的值,自动为所有的参数设置适配器。
但是,有些时候,你可能传入了 null 值或者其他的特殊对象,
这里允许你主动为其设置一个适配器,这样你就有了终极手段最合理的适配你的参数对象

参数:
name - 对应参数的名称
adaptor - 适配器实例

varIndex

VarIndex varIndex()
返回:
整个 SQL 的变量索引,你可以获得变量的个数和名称

paramIndex

VarIndex paramIndex()
返回:
整个 SQL 的参数索引,你可以获得参数的个数和名称

addBatch

void addBatch()
将当前的参数列表存储,以便执行批处理


clearBatch

void clearBatch()
清除所有的曾经设置过的参数


setEntity

Sql setEntity(Entity<?> entity)
重写父接口返回值

指定者:
接口 DaoStatement 中的 setEntity
参数:
entity - 实体
返回:
自身

setCallback

Sql setCallback(SqlCallback callback)
当前 Statement 被执行完毕后,有可能会产生一个 ResultSet。 针对这个 ResultSet 你可以执行更多的操作。

当然如果不是 SELECT 语句,那么你依然可以设置一个回调,
当你的语句执行完毕后, 会调用它(Connection 不会被 commit),但是 ResultSet 参数会是 null

参数:
callback - 回调函数
返回:
自身

setCondition

Sql setCondition(Condition cnd)
为 SQL 增加条件,SQL 必须有 '$condition' 变量

参数:
cnd - 条件
返回:
自身

duplicate

Sql duplicate()
返回:
一个新的和当前对象一样的对象。只是原来设置的变量和参数,需要你重新设置

setSourceSql

void setSourceSql(java.lang.String sql)

getSourceSql

java.lang.String getSourceSql()

setPager

DaoStatement setPager(Pager pager)
为自定义SQL设置Pager

如果设置为非空值,那么将附加上分页语句!!

由于不带SQL语法分析,无法探知用户是否已经自行添加分页语句!!

使用这个功能,你就不要自己在SQL里面写limit了!!!

指定者:
接口 DaoStatement 中的 setPager