org.nutz.dao.impl.sql
类 NutSql

java.lang.Object
  继承者 org.nutz.dao.impl.sql.NutStatement
      继承者 org.nutz.dao.impl.sql.NutSql
所有已实现的接口:
DaoStatement, Sql

public class NutSql
extends NutStatement
implements Sql


构造方法摘要
NutSql(java.lang.String sql)
           
 
方法摘要
 void addBatch()
          将当前的参数列表存储,以便执行批处理
 void clearBatch()
          清除所有的曾经设置过的参数
 Sql duplicate()
           
 ValueAdaptor[] getAdaptors()
          为本语句每一个参数提供一个适配器
 java.lang.Object[][] getParamMatrix()
          用一个矩阵描述语句的参数表。
 java.lang.String getSourceSql()
           
 void onAfter(java.sql.Connection conn, java.sql.ResultSet rs)
          语句执行完毕的后续操作 这个接口函数你基本不会直接使用的
 void onBefore(java.sql.Connection conn)
          语句执行之前的操作 这个接口函数你基本不会直接使用的
 VarIndex paramIndex()
           
 VarSet params()
          所谓"参数",就是当 Sql 对象转换成 PreparedStatement 对象前,会被填充成 ?
 Sql setCallback(SqlCallback callback)
          当前 Statement 被执行完毕后,有可能会产生一个 ResultSet。
 Sql setCondition(Condition cnd)
          为 SQL 增加条件,SQL 必须有 '$condition' 变量
 Sql setEntity(Entity<?> en)
          设置 当前语句对应的实体
 NutSql setPager(Pager pager)
          为自定义SQL设置Pager

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

 void setSourceSql(java.lang.String sql)
           
 void setValueAdaptor(java.lang.String name, ValueAdaptor adaptor)
          手动为某个语句参数设置适配器。
 java.lang.String toPreparedStatement()
          将 Dao 语句转换为 JDBC SQL 缓冲语句
 java.lang.String toString()
          输出打印字符串
 VarIndex varIndex()
           
 VarSet vars()
          所谓"变量",就是当 Sql 对象转换成 Statement 对象前,预先被填充的占位符。
 
从类 org.nutz.dao.impl.sql.NutStatement 继承的方法
getBoolean, getContext, getEntity, getInt, getList, getObject, getResult, getSqlType, getString, getUpdateCount, param2String, setContext, setSqlType, toExampleStatement, toStatement
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
从接口 org.nutz.dao.sql.DaoStatement 继承的方法
getBoolean, getContext, getEntity, getInt, getList, getObject, getResult, getSqlType, getString, getUpdateCount
 

构造方法详细信息

NutSql

public NutSql(java.lang.String sql)
方法详细信息

setEntity

public Sql setEntity(Entity<?> en)
从接口 DaoStatement 复制的描述
设置 当前语句对应的实体

指定者:
接口 DaoStatement 中的 setEntity
指定者:
接口 Sql 中的 setEntity
覆盖:
NutStatement 中的 setEntity
参数:
en - 实体
返回:
自身

getAdaptors

public ValueAdaptor[] getAdaptors()
从接口 DaoStatement 复制的描述
为本语句每一个参数提供一个适配器

指定者:
接口 DaoStatement 中的 getAdaptors
返回:
JDBC 缓冲语句的参数适配器

setValueAdaptor

public void setValueAdaptor(java.lang.String name,
                            ValueAdaptor adaptor)
从接口 Sql 复制的描述
手动为某个语句参数设置适配器。

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

指定者:
接口 Sql 中的 setValueAdaptor
参数:
name - 对应参数的名称
adaptor - 适配器实例

getParamMatrix

public java.lang.Object[][] getParamMatrix()
从接口 DaoStatement 复制的描述
用一个矩阵描述语句的参数表。
这个参数矩阵将同 getAdaptors() 的返回组合使用

矩阵的每一行相当于执行一条语句

参数表的下标意义为: Object[行][列]

指定者:
接口 DaoStatement 中的 getParamMatrix
返回:
语句参数表

toPreparedStatement

public java.lang.String toPreparedStatement()
从接口 DaoStatement 复制的描述
将 Dao 语句转换为 JDBC SQL 缓冲语句

指定者:
接口 DaoStatement 中的 toPreparedStatement
返回:
JDBC SQL 缓冲语句

vars

public VarSet vars()
从接口 Sql 复制的描述
所谓"变量",就是当 Sql 对象转换成 Statement 对象前,预先被填充的占位符。

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

指定者:
接口 Sql 中的 vars
返回:
变量集合

params

public VarSet params()
从接口 Sql 复制的描述
所谓"参数",就是当 Sql 对象转换成 PreparedStatement 对象前,会被填充成 ? 的占位符

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

指定者:
接口 Sql 中的 params
返回:
参数集合

varIndex

public VarIndex varIndex()
指定者:
接口 Sql 中的 varIndex
返回:
整个 SQL 的变量索引,你可以获得变量的个数和名称

paramIndex

public VarIndex paramIndex()
指定者:
接口 Sql 中的 paramIndex
返回:
整个 SQL 的参数索引,你可以获得参数的个数和名称

addBatch

public void addBatch()
从接口 Sql 复制的描述
将当前的参数列表存储,以便执行批处理

指定者:
接口 Sql 中的 addBatch

clearBatch

public void clearBatch()
从接口 Sql 复制的描述
清除所有的曾经设置过的参数

指定者:
接口 Sql 中的 clearBatch

setCallback

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

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

指定者:
接口 Sql 中的 setCallback
参数:
callback - 回调函数
返回:
自身

setCondition

public Sql setCondition(Condition cnd)
从接口 Sql 复制的描述
为 SQL 增加条件,SQL 必须有 '$condition' 变量

指定者:
接口 Sql 中的 setCondition
参数:
cnd - 条件
返回:
自身

duplicate

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

onBefore

public void onBefore(java.sql.Connection conn)
从接口 DaoStatement 复制的描述
语句执行之前的操作

这个接口函数你基本不会直接使用的

指定者:
接口 DaoStatement 中的 onBefore
参数:
conn - 当前执行语句的连接

onAfter

public void onAfter(java.sql.Connection conn,
                    java.sql.ResultSet rs)
             throws java.sql.SQLException
从接口 DaoStatement 复制的描述
语句执行完毕的后续操作

这个接口函数你基本不会直接使用的

指定者:
接口 DaoStatement 中的 onAfter
参数:
conn - 当前执行语句的连接
rs - 当前语句执行的结果集
抛出:
java.sql.SQLException - 回调函数抛出的异常

toString

public java.lang.String toString()
从接口 DaoStatement 复制的描述
输出打印字符串

指定者:
接口 DaoStatement 中的 toString
覆盖:
NutStatement 中的 toString
返回:
日志打印字符串

setPager

public NutSql setPager(Pager pager)
从接口 Sql 复制的描述
为自定义SQL设置Pager

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

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

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

指定者:
接口 DaoStatement 中的 setPager
指定者:
接口 Sql 中的 setPager

setSourceSql

public void setSourceSql(java.lang.String sql)
指定者:
接口 Sql 中的 setSourceSql

getSourceSql

public java.lang.String getSourceSql()
指定者:
接口 Sql 中的 getSourceSql